WPF如何接收触摸输入?

时间:2015-04-21 09:38:19

标签: c# wpf windows-7 touch windows-messages

我正在使用WPF(C#,Windows 7,.NET 4.0)及其触摸事件。这样做时我想到的一个问题是,wpf如何完全获得触摸输入?在msdn articel Architectural Overview中,据说应用程序'通过WM_TOUCH消息获取输入,但我无法找到该文章的年龄(因此它是否适用于WPF)的信息。我也读过(例如here)您无法在WPF应用程序中收到手势消息。

因此,WPF会在内部转换触摸消息,然后通过触摸事件(例如TouchDown&#39 ;?)将它们呈现给程序员。如果是这样,为什么不能访问消息呢?是否有官方消息来明确说明WPF如何接收触摸输入?

1 个答案:

答案 0 :(得分:0)

我相信你所谈论的更多的是"物理学"触摸设备。 WPF如何从触摸屏接收输入?

触摸屏就像任何其他输入设备,如鼠标或键盘。它的工作方式当然是手指压力。触摸设备内部的芯片计算出您正在按压的手指的边界,区域和坐标。然后,操作系统将其转换为适当的事件或消息,就像键盘或鼠标一样。因此,消息不是WPF特有的。所有其他应用程序都听同样的#34; kind"来自操作系统的消息以"消息"的形式接收touch输入。或"事件"基于硬件和操作系统。

如果您真的想知道WPF如何接收输入,您可以使用优秀的ILSpy工具并深入研究System.Windows.Input.Touch类

您可以在触摸屏机制上看到更多信息here

侧面说明,与鼠标输入(单点)不同,触摸是多点的。 WPF会引发TouchEnterTouchLeaveTouchMoveTouchUpTouchDown等事件,TouchEventArgs会为您提供有关位置和触摸的界限。

相关问题