如何在WPF ToggleButton中检测DoubleClick

时间:2014-05-05 17:43:24

标签: c# wpf togglebutton

在我的WPF应用程序中,我有切换按钮,我想检测用户双击它的时间(在两种情况下,如果选中或取消选中)。

我该怎么做?

提前致谢

3 个答案:

答案 0 :(得分:2)

您可以使用OnPreviewMouseDoubleClick事件

XAML:

   <ToggleButton Height="75" Width="100" PreviewMouseDoubleClick="Control_OnPreviewMouseDoubleClick"/>

代码隐藏:

private void Control_OnPreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    var toggleButtton = sender as ToggleButton;
    if (toggleButtton != null)
    {
        if (toggleButtton.IsChecked.HasValue)
        {
            if (toggleButtton.IsChecked.Value)
            {
                // Checked
            }
            else
            {
                // Unchecked

                // this will re-check the button if double-click unchecks it
                //
                toggleButtton.IsChecked = true;
                toggleButtton.Focus();
            }
        }
    }
}

答案 1 :(得分:1)

使用PreviewMouseDoubleClick事件(msdn):

XAML:

<ToggleButton x:Name="tButton" Height="30" Content="MyButton"                      
              PreviewMouseDoubleClick="tButton_PreviewMouseDoubleClick"
            />

代码隐藏:

private void tButton_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    tButton.IsChecked = !tButton.IsChecked.Value;
    e.Handled = true;

    //...
}

答案 2 :(得分:1)

使用togglebuttons这个事件非常简单 Xaml你写下以获得一个EventHandler:

<ToggleButton Name="button1" MouseDoubleClick="button1_DoubleClick" />

在c#中,您编写以下内容以获取EventHandler:

button1.MouseDoubleClick += new MouseButtonEventHandler(button1_DoubleClick);

在这两种情况下你都需要:

void button1_DoubleClick(object sender, MouseButtonEventArgs e)
{
}