在我的应用程序中,我想同时处理鼠标和触摸事件,以保持平滑。但是在这里,我允许我的代码,比如鼠标事件,只有当输入指针是鼠标时才能工作,而只有当输入指针在触摸屏上是手指时,触摸事件才能工作(比如Outlook 2013在触摸设备上)。如何做到这一点?或者,如果有任何内建事件可用来识别输入指针,请告诉我。
请向我提供你的建议。
发布于 2013-11-05 10:26:12
WPF提供不同类型的输入事件(例如:MouseLeftButtonDown、StylusDown、TouchDown)。所有这些事件都有关联的事件参数,这些参数允许您访问导致交互的输入设备(例如:MouseEventArgs.Device等)。
更新:
Mouse事件为实际的计算机鼠标触发,并由手写笔输入。如果您需要识别触摸输入,您可以利用Stylus相关事件的Stylus变体(例如PreviewStylusButtonDown)。然后,在通信事件处理程序中,您可以设置一个全局变量(类型为bool),指示正在处理触摸输入。在鼠标事件处理程序中访问这个变量,让我们根据输入类型调用代码。最后,在使用这种方法时,不要忘记在交互完成时“取消”Boolean。
或者,您也可以直接将代码放在StylusButtonDown的处理程序中,在这种情况下,您需要知道鼠标事件仍然被触发。
发布于 2020-05-18 08:22:50
在MouseLeftButtonDown处理程序中:
if (e.StylusDevice != null) {
// Event generated by touch screen
}
else {
// Event generated by mouse
}这也适用于MouseMove、MouseUp事件。
https://stackoverflow.com/questions/19786444
复制相似问题