在 .NET Framework 4.7 以前,WPF 程序的触摸处理是基于操作系统组件但又自成一套的,这其实也为其各种各样的触摸失效问题埋下了伏笔。再加上它出现得比较早,触摸失效问题也变得更加难以解决。即便是 .NET Framework 4.7 以后也需要开发者手动开启 Pointer
消息,并且存在兼容性问题。
本文将通过解读 WPF 触摸部分的源码,分析 WPF 插拔设备触摸失效的问题。随后,会给微软报这个 Bug。
本文使用多种语言编写,请选择适合你阅读的语言:
- 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇)
- WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices
所谓“触摸失效”,指的是无论你如何使用手指或触摸笔在触摸屏上书写、交互,程序都没有任何反应。而使用鼠标操作则能正常使用。
本文所述的“触摸失效问题”我在 WPF 程序无法触摸操作 一文中有所提及,但本文偏向于分析其内部发生的原因。
本文与 林德熙 的 WPF 插拔触摸设备触摸失效 所述的是同一个问题。那篇文章会更多的偏向于源码解读,而本文更多地偏向于分析触摸失效的过程。
WPF 程序插拔设备导致触摸失效问题
无论你写的 WPF 程序多么简单ÿ