在WPF中获取系统的双击计时器间隔(来自控制面板的值)

She*_*aig 6 wpf mouse controlpanel double-click

我有一个FrameworkElement,我希望在用户单击时执行操作A,在用户双击时执行操作B.

由于事件的传递方式,我总是得到一个单击事件,开始动作A.环顾四周后,我发现了一个有趣的技术,使用计时器来延迟点击的处理.但是,此示例将计时器硬编码为300毫秒,但我更喜欢使用用户的"双击速度"设置控制面板的鼠标属性对话框.

什么是从系统中获取该值的wpf/C#API?

Col*_*inE 9

你可以在这里找到时间:System.Windows.Forms.SystemInformation.DoubleClickTime

您实际上可以看到您要在此处实现的完整实现:

WPF:按住单击+双击问题

  • 为了避免引用Winforms,您可以在幕后执行相同的操作并导入[GetDoubleClickTime](http://msdn.microsoft.com/en-us/library/windows/desktop/ms646258(v =与user32.dll中的函数相关的函数:`[DllImport("user32.dll",CharSet = CharSet.Auto,ExactSpelling = true)] public static extern int GetDoubleClickTime();` (4认同)

dex*_*ang 5

如果你不想引用 System.Windows.Forms 程序集,你可以试试这个:

    [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
    public static extern int GetDoubleClickTime();
Run Code Online (Sandbox Code Playgroud)