2013-06-05 32 views
0

WPF中有获得主动触摸点的方法吗?我需要确定用户是否正在触摸屏幕,类似Mouse类'Pressed-property?WPF获取主动触摸点

我只需要知道屏幕上是否有任何触摸 - 不介意它触摸的UIElement。

回答

1

这里有两个选择,但他们可能不这样做的最正确的方法:

1)你可以订阅MainWindow.PreviewTouchDownMainWindow.PreviewTouchUp和维护所有当前触摸设备的列表。这将很容易实现,但可能会让你的代码混乱。

2)订阅Touch.FrameReported,您可以从TouchFrameEventArgs.GetTouchPoints(null);获得一系列触点。每发生一次触发事件都会发生这种情况,所以它可能会过于频繁,但它可以让您从任何课程中处理此事件。

1

您可以订阅主窗口的ManipulationStarting事件(当第一根手指接触屏幕时),ManipulationInertiaStarting事件(最后一根手指离开屏幕时)和/或ManipulationDelta事件(当任何手指移动时)。

在你的事件处理程序,您可以通过ManipulationDeltaEventArgs.Manipulators

得到所有当前接触点的列表,不要忘了你的主窗口的IsManipulationEnabled设置为true。

这样你只需要记住一个操作是否正在进行中。你不必自己跟踪所有的个人接触点。