禁用鼠标提升

Fra*_*ald 5 windows wpf mouse touch

有没有办法从代码中禁用鼠标提升,即阻止窗口将触摸事件解释为鼠标事件?

我在 WPF 应用程序中捕获触摸事件,并且我不希望这些交互影响鼠标指针的可见性和位置。

有一个TouchFrameEventArgs.SuspendMousePromotionUntilTouchUp 方法似乎就是这样做的。不幸的是,它仅适用于 Silverlight 和 Windows Phone。

此外,还有一些系统设置可以用来禁用双击和右键单击提升,但没有什么可以禁用整个鼠标提升。

Windows 8 特定解决方案或低级解决方案也会有所帮助。

Fra*_*ald 0

似乎没有任何这样的选项(至少在 Windows 8.1 和 .NET 4.5 之前)。

禁用鼠标升级的唯一方法是完全禁用手指输入,可以从系统控制面板内(打开控制面板,打开“笔和触摸”,选择“触摸”选项卡,禁用“使用手指作为输入设备”)或通过注册表(HKLM\Software\Microsoft\Wisp\Touch,TouchGate = 0 =禁用触摸)

然后,您仍然可以使用以下(讨厌的)替代方案之一来处理触摸输入:

最后,您可以使用自定义路由事件或使用触摸注入将收集到的触摸数据注入到您的应用程序中。

当然,无论如何,您都会失去对系统上任何其他应用程序的触摸支持,因此该解决方案通常对您没有太大帮助。