在讨论 wpf 开发时,如果开发的应用是触摸应用,熟悉的小伙伴们常常会提到触摸失效问题。触摸失效可以分为系统触摸失效和应用程序触摸失效。需要注意的是,触摸失效并不意味着触摸完全没有反应。本文将详细介绍什么是触摸失效。
首先,了解触摸失效的分类是必要的。触摸失效可以分为系统触摸失效和应用触摸失效,每种失效又可以进一步分为全触摸失效和多指触摸失效。请看下图:

| 触摸失效 | 全触摸失效 | 多指触摸失效 |
|---|---|---|
| 系统触摸失效 | 系统桌面用触摸点不了任何内容,但用鼠标可以 | 在任何应用都无法使用触摸,但鼠标可以 |
| 系统的触摸都转鼠标,开启触摸点反馈时发现只有鼠标光标显示,没有显示触摸光标。无法在系统和任何应用使用多指触摸 | ||
| 应用触摸失效 | 在某个应用里面无法用触摸,但可以使用鼠标 | 在应用里面所有触摸都转鼠标,也就是收不到Touch事件,同时收不到多指触摸 |
系统触摸失效和应用触摸失效的区别在于,应用触摸失效只影响某个应用,其他应用或此应用重启后可能恢复触摸功能。而系统触摸失效则类似于没有触摸设备,所有的应用和系统都无法使用触摸。
全触摸失效就像没有触摸设备一样,所有触摸都没有响应,但鼠标可以正常使用。多指触摸失效则是不支持多指触摸,但可以转换为单指触摸或转为鼠标,相当于鼠标点击。
在应用程序中,还存在瞬时触摸失效问题,即某次触摸没有响应,但随后应用程序能恢复触摸功能。
对于不同的触摸失效问题,有不同的解决方法。关于应用程序中的触摸失效,请参考《WPF 程序无法触摸操作?我们一起来找原因和解决方法! - walterlv》。
应用程序的触摸失效可以分为启动前和运行过程。如果应用程序在启动前就已经触摸失效,那么与应用程序本身的代码执行无关。在 Win7 系统中存在许多触摸问题,如果应用在启动过程中尚未进入用户代码就触摸失效,通常是系统问题。如果在运行过程中触摸失效,也可能与系统相关,但大部分情况是应用程序的问题。
为什么系统没有触摸失效而应用触摸失效了?从官方文档可以了解 Windows 对触摸的处理方式。通过《打开 HID 集合和 Windows 触摸文档》,可以知道从硬件接收到的消息需要进入 Windows 内核处理,然后经过 Windows touch SDK 转发到应用,如下图所示:

以上就是WPF 客户端开发需要知道的触摸失效问题的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号