Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF如何接收触摸输入?_C#_Wpf_Windows 7_Touch_Windows Messages - Fatal编程技术网

C# WPF如何接收触摸输入?

C# WPF如何接收触摸输入?,c#,wpf,windows-7,touch,windows-messages,C#,Wpf,Windows 7,Touch,Windows Messages,我正在使用WPF C、Windows 7、.NET 4.0及其触摸事件。我在做这件事时想到的一个问题是,wpf到底是如何获得触摸输入的?在msdn文章中,有人说“应用程序”通过WM_TOUCH消息获得输入,但我找不到关于该文章有多老以及是否适用于WPF的信息。例如,我还读到,您不能在WPF应用程序中接收手势消息 那么,WPF是否在内部转换触摸消息,然后通过触摸事件(如“触地”)将其呈现给程序员?如果是这样的话,为什么你不能访问messagese?是否有官方来源明确说明WPF是如何接收触摸输入的?

我正在使用WPF C、Windows 7、.NET 4.0及其触摸事件。我在做这件事时想到的一个问题是,wpf到底是如何获得触摸输入的?在msdn文章中,有人说“应用程序”通过WM_TOUCH消息获得输入,但我找不到关于该文章有多老以及是否适用于WPF的信息。例如,我还读到,您不能在WPF应用程序中接收手势消息


那么,WPF是否在内部转换触摸消息,然后通过触摸事件(如“触地”)将其呈现给程序员?如果是这样的话,为什么你不能访问messagese?是否有官方来源明确说明WPF是如何接收触摸输入的?

我相信你所说的更多的是触摸设备的物理特性。 WPF如何接收来自触摸屏的输入

触摸屏就像其他输入设备一样,如鼠标或键盘。当然,它的工作方式是用手指按压。触摸设备内部的芯片会显示出你按下的手指的边界、区域和坐标。然后,操作系统会将其转换为相应的事件或消息,就像键盘或鼠标一样。因此,消息不是特定于WPF的。所有其他应用程序根据硬件和操作系统监听来自操作系统的同类消息,以消息或事件的形式接收触摸输入

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

您可以看到有关触摸屏机制的更多信息


另一方面,与单点鼠标输入不同,触摸是多点的。WPF会引发诸如TouchEnter、TouchLeave、TouchMove、TouchUp、TouchDown等事件,而TouchEventArgs会为您提供有关触摸位置和边界的信息。

请查看文章中有关MSDN的部分。@Clemens可能我的问题不够清楚,我想知道WPF元素如何获得它必须抛出事件的信息。在您链接的文章中,只解释了如果WPF元素抛出事件会发生什么以及如何对其作出反应。如果我没有正确理解这篇文章,并且它确实回答了我的问题,请更具体地说明信息隐藏的位置:嗯,不完全是这样。我想知道WPF是否使用相同的消息WM_TOUCH和WM_手势,您可以通过Pinvoke在Winforms中使用这些消息。您似乎建议这样做,但我希望有一些msdn页面或其他明确说明这一事实的内容。您提出的问题非常低,Microsoft没有公开讨论,但是您可以在windows touch应用程序上看到这篇文章。[.windows应用程序调用低级API调用基本上使用这三组消息:WM_指针、WM_触摸和WM_手势。由于WPF仅在windows操作系统中工作,并且需要完整的.net framework,我非常确定它也必须遵循相同的路线,并在引擎盖下进行这些调用。请注意,WM_指针仅在windows 8和WPF中工作适用于windows 7和8。WPF必须只使用WM_触摸和WM_手势。这是一个问题。这一切都很模糊,我想要一个明确的答案。但谢谢你的时间!不用担心。如果我遇到明确的问题,我会让你知道。