在 Windows 的平板模式下才能自动在获取键盘输入焦点时弹出屏幕键盘,但是 Windows 的屏幕键盘做的粗糙,有时候不会自动开启屏幕键盘,此时需要使用代码辅助
如果是非平板模式,以及系统没有检测到触摸,此时不一定能弹出屏幕键盘
在 Win10 版本小于 10.0.14393 时,可以通过启动 TabTip.exe 应用打开屏幕键盘。而在大于等于 10.0.14393 版本需要使用 COM 的方式
先来聊聊如何通过 TabTip.exe 应用打开屏幕键盘
默认的 TabTip.exe 应用将会放在 Program Files
文件夹下,可以通过如下代码拿到 Program Files
文件夹
此时拿到应用路径可以使用下面代码
启动应用,启动之后需要等待一下,下面代码使用 Thread.Sleep(50)
等待,请小伙伴根据需要更改时间或更改为 Task.Delay 等。如果没有后续逻辑依赖键盘,那么可以删除 Thread.Sleep 的代码
如果是 10.0.14393 Windows 10周年纪念版 版本,可以使用 com 的方式启动,在启动之前,可以先判断一下版本号
注意,默认的 .NET 程序是不会让你获取 Environment.OSVersion 到 win10 的版本,详细请看 关于C#中Environment.OSVersion判断操作系统及Win10上的问题 - 夏至千秋 - 博客园
通过 COM 只有 Toggle 方法,也就是如果原本是没有开启的,调用将会开启。否则将会关闭
判断屏幕键盘是否开启,在 10.0.14393 Windows 10周年纪念版之前可以采用如下方法
如果是 10.0.14393 需要使用下面代码
但是在 10.0.18362 版本,上面判断方法在一些设备上凉凉
原文链接: http://blog.lindexi.com/post/WPF-%E5%90%AF%E5%8A%A8%E5%B1%8F%E5%B9%95%E9%94%AE%E7%9B%98
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系。