15
Sep

Simulate Double Click

Post a comment » Popularity: 1%

There is no native support for double click in Silverlight. Mike has a workaround to solve this problem. This is achieved by using a combination of DispatcherTimer and MouseDown Event.

 double-click

View Demo: New Window
How to simulate double click in C#:
DispatcherTimer _doubleClickTimer;

public Page()
{
    InitializeComponent();
    _doubleClickTimer = new DispatcherTimer();
    _doubleClickTimer.Interval = new TimeSpan(0, 0, 0, 0, 200);
    _doubleClickTimer.Tick += new EventHandler(DoubleClick_Timer);
    this.MouseLeftButtonDown += new MouseButtonEventHandler(Page_MouseLeftButtonDown);
}

// too much time has passed for it to be a double click.
void DoubleClick_Timer(object sender, EventArgs e)
{
    _doubleClickTimer.Stop();
}

void Page_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    if (_doubleClickTimer.IsEnabled)
    {
        // a double click has occured
        _doubleClickTimer.Stop();
    }
    else
    {
        _doubleClickTimer.Start();
    }
}
  • DZone
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit

Related Posts

Leave a Reply