WPF:如何处理点击和双击按钮?

时间:2012-11-10 20:18:42

标签: c#

  

可能重复:
  WPF: Button single click + double click problem
  WPF/MVVM - how to handle double-click on TreeViewItems in the ViewModel?

我需要处理单击和双击WPF应用程序中的按钮并进行不同的反应。只需单击一下,我只想显示该按钮具有焦点,双击时我想显示一个新窗口(类似于Windows图标行为)。但是在双击时,WPF会发出两次点击,因此很难处理这种情况。任何人都可以帮助解决这个问题吗?谢谢你的帮助。

我试过了:

private static DispatcherTimer myClickWaitTimer = 
    new DispatcherTimer(
        new TimeSpan(0, 0, 0, 1), 
        DispatcherPriority.Background, 
        mouseWaitTimer_Tick, 
        Dispatcher.CurrentDispatcher);

private void Button_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    // Stop the timer from ticking.
    myClickWaitTimer.Stop();

    Trace.WriteLine("Double Click");
    e.Handled = true;
}

private void Button_Click(object sender, RoutedEventArgs e)
{
    myClickWaitTimer.Start();
}

private static void mouseWaitTimer_Tick(object sender, EventArgs e)
{
    myClickWaitTimer.Stop();

    // Handle Single Click Actions
            MainWindow c = new MainWindow()
    c.focusButton.Background = new SolidColorBrush(Colors.DarkBlue);
}

但是当我点击focusButton时,focusButton Bacground没有改变。

1 个答案:

答案 0 :(得分:0)

有趣的问题。 在我看来,在第一步你必须像往常一样以不同的方式处理Button_click。 也许尝试使用一些计数器和计时器?