如何在C#WPF中在触摸屏上识别输入指针是鼠标还是手指?

问题描述 投票:0回答:2

在我的应用程序中,我想同时处理鼠标和Touch事件以保持顺畅。但是在这里,我允许我的代码(例如,鼠标事件)仅在输入指针是鼠标时才起作用,而触摸事件仅在输入指针是手指在触摸屏上时才起作用(就像触摸设备上的Outlook 2013)。如何实现呢?或如果有任何内置事件可用来标识输入指针,请告诉我。

请向我提供您的建议。

c# wpf silverlight c#-4.0 touch
2个回答
1
投票

WPF提供不同类型的输入事件(例如:MouseLeftButtonDownStylusDownTouchDown)。所有这些事件都有关联的事件参数,可让您访问引起交互的输入设备(例如MouseEventArgs.Device等。)>

更新:

Mouse事件会触发实际的计算机鼠标并由手写笔输入。如果您需要识别触摸输入,则可以利用Preview相关事件的Stylus变体(例如PreviewStylusButtonDown)。然后,在对应事件处理程序中,您可以设置一个全局变量(类型为bool),指示正在处理触摸输入。通过在鼠标事件处理程序中访问此变量,您可以根据输入类型来调用代码。最后,使用此方法时,不要忘了在交互完成后“重置” Boolean

或者,您也可以直接将代码直接放在StylusButtonDown的处理程序中,在这种情况下,您需要知道仍在触发鼠标事件。


0
投票

在您的MouseLeftButtonDown处理程序中:

© www.soinside.com 2019 - 2024. All rights reserved.