在WPF中区分鼠标双击和单击

17
在我的WPF应用程序中,我正在使用ListView GridView,并实现了与鼠标双击相关的功能。是否有一种方法或控件可以区分鼠标双击和单击?
我使用了一个按钮,并为mousedoubleclick实现了一个事件,但是click事件仍然会触发。
感谢帮助。

1
没有单击,就不可能有双击。 - Muad'Dib
2个回答

37

对于呈现 MouseDoubleClick 事件的控件处理双击事件并不难。对于其他控件的双击处理需要检查 MouseButtonEventArgsClickCount 属性。

例如,你的 XAML 可能看起来像这样:

<SomeControl  MouseDown="MyMouseDownHandler">
    ...
</SomeControl>

...以及您的代码后端如下:

private void MyMouseDownHandler(object sender, MouseButtonEventArgs e)
{
    if (e.ClickCount == 2)
    {
        // Handle double-click
    }
}

这里有一个页面,提供了一个稍微更详细的例子。


3
链接已经失效,但可以在 Wayback Machine 上找到:https://web.archive.org/web/20130408052049/http://tech.pro/tutorial/838/wpf-tutorial-getting-the-doubleclick-event - kub1x
简单加法和官方网址:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.input.mousebuttoneventargs.clickcount?view=netframework-4.8 - VAdaihiep

3

1
MouseDoubleClick 不是 Canvas 控件的有效事件,这正是我遇到问题的原因。对于其他控件,它似乎是有效的。来自 @mcwyrm 的下面答案正是我所需要的。 - jawsware

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接