c# - WPF - 是否可以(以编程方式)禁用多点触控?

标签 c# .net wpf multi-touch

我对带有(多)触摸屏的平板电脑的 WPF 应用程序/演示文稿有疑问。演示文稿的一张“幻灯片”由背景上的 Canvas 和一个小的 UserControl 组成。这个 UserControl 在开始时是不可见的,但只要用户触摸屏幕,它就会变得可见,如果用户移动手指,控件也会相应移动(“跟随”手指,就像光标一样)。然后,当用户停止触摸屏幕时,控件再次变为不可见。

使用 TouchDown、TouchUp 和 TouchMove 事件处理程序并不难做到这一点,如果用户只用一根手指触摸屏幕,它就可以正常工作。但是,当用户将一根手指放在位置 X(例如 Canvas 坐标 [100,100])上,另一根手指放在位置 Y(例如 [500, 100])上时,UserControl 开始在位置 X 和 Y 之间跳转,看起来不太好...

现在我希望屏幕当时只对一次触摸使用react,我可以在操作系统(Windows 7)中使用控制面板->笔和触摸->触摸通过取消选中项目“启用多点触控手势和墨迹书写”来完成”。

这工作正常,完全符合我的要求,不幸的是它不是很方便,因为有时我需要使用多点触控,而且每次决定使用应用程序时我都无法更改它......

这就是为什么我想问是否有任何方法可以在我需要的应用程序(或仅在 WPF UserControl)中以编程方式禁用多点触控。非常感谢您的帮助。

最佳答案

看看TouchDevice.Id属性(property)。您可以从传递给触摸事件的事件参数中获取此信息,它将允许您唯一标识触摸事件,这样您就不会将第一次触摸与随后的并行触摸混淆。

关于c# - WPF - 是否可以(以编程方式)禁用多点触控?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5637602/

相关文章:

c# - 并行 plinq 与 linq

c# - 使用 LINQ 将两个类合并到字典中

c# - 为什么我的 IE MIME 过滤器没有被创建或调用?

wpf - MVVM方式使用不同的控件来编辑不同的对象

c# - 在 wpf C# 中删除数据网格行之前删除确认

c# - 从字符串中删除无法识别的 ASCII 字符

c# - EF Core 3.1 中的时间跨度问题

c# - 线程携带重复的字符串对象

.net - GoogleWebAuthorizationBroker 不会自动从刷新 token 返回新的访问 token

wpf - 也支持 TreeView 的 DataGrid