在我的应用程序中,我想同时处理鼠标和Touch事件以保持顺畅。但是在这里,我允许我的代码(例如,鼠标事件)仅在输入指针是鼠标时才起作用,而触摸事件仅在输入指针是手指在触摸屏上时才起作用(就像触摸设备上的Outlook 2013)。如何实现呢?或如果有任何内置事件可用来标识输入指针,请告诉我。
请向我提供您的建议。
WPF提供不同类型的输入事件(例如:MouseLeftButtonDown
,StylusDown
,TouchDown
)。所有这些事件都有关联的事件参数,可让您访问引起交互的输入设备(例如MouseEventArgs.Device
等。)>
更新:
Mouse
事件会触发实际的计算机鼠标并由手写笔输入。如果您需要识别触摸输入,则可以利用Preview
相关事件的Stylus
变体(例如PreviewStylusButtonDown
)。然后,在对应事件处理程序中,您可以设置一个全局变量(类型为bool
),指示正在处理触摸输入。通过在鼠标事件处理程序中访问此变量,您可以根据输入类型来调用代码。最后,使用此方法时,不要忘了在交互完成后“重置” Boolean
。
或者,您也可以直接将代码直接放在StylusButtonDown
的处理程序中,在这种情况下,您需要知道仍在触发鼠标事件。
在您的MouseLeftButtonDown处理程序中: