WPF多点触控在Windows 10中收听系统范围的TouchDown事件

时间:2019-07-05 08:19:00

标签: c# wpf winforms touch-event

到目前为止,我只能通过以下方式在应用程序窗口中收听触摸事件:

this.TouchDown += new EventHandler<TouchEventArgs>(TouchableThing_TouchDown);
this.TouchMove += new EventHandler<TouchEventArgs>(TouchableThing_TouchMove);

private void TouchableThing_TouchDown(object sender, TouchEventArgs e){}
private void TouchableThing_TouchMove(object sender, TouchEventArgs e){}

但是我意识到我也需要捕获窗口外部的触摸事件。是否有一个已知的事件可供我听,使它不仅覆盖我自己的窗口,而且覆盖整个屏幕?

1 个答案:

答案 0 :(得分:1)

要在窗口之外获取输入事件,您需要深入研究p /调用区域。具体来说,您需要设置一个hook。更具体地说,您需要添加一个WH_MOUSE挂钩,该挂钩可用于监视系统范围内的鼠标事件(触摸输入是鼠标输入的演变,因此它们都由Windows一起处理)。

这个问题提供了有价值的信息,并提供了一个使用钩子解释触摸输入的示例: how to distinguish touch vs mouse event from SetWindowsHookEx in c#