WPF 禁用TextBox的触摸后自动弹出虚拟键盘
程序员文章站
2022-09-03 09:22:16
前言 & 问题 如下截图,TextBox,在触摸点击后,会自动弹出windows的虚拟键盘。 如何,禁用键盘的自动弹出? 调用虚拟键盘 通过调用TapTip.exe或者osk.exe,主动弹出虚拟键盘 详细调用可参考:c#调用windows虚拟键盘 如何禁用键盘的弹出 TextBox在触摸点击后,会 ......
前言 & 问题
如下截图,textbox,在触摸点击后,会自动弹出windows的虚拟键盘。
如何,禁用键盘的自动弹出?
调用虚拟键盘
通过调用taptip.exe或者osk.exe,主动弹出虚拟键盘
详细调用可参考:
如何禁用键盘的弹出
textbox在触摸点击后,会自动弹出虚拟键盘,是因为在控件中作了封装。
--textbox中详细tabtip.exe封装看了会,没找到
处理方案:重写textbox的方法oncreateautomationpeer,返回一个uielementautomationpeer而不是automationpeer。
可能原因:textbox自定义实现中返回的是automationpeer,而uielementautomationpeer继承automationpeer,重写了相关键盘属性。
猜测与haskeyboardfocuscore属性有关。
直接复制如下代码:
1 /// <summary> 2 /// 禁用自动弹出虚拟键盘的textbox控件 3 /// </summary> 4 public class textboxnoautokeyboard : textbox 5 { 6 protected override automationpeer oncreateautomationpeer() 7 { 8 return new frameworkelementautomationpeer(this); 9 } 10 }
以上参考自:【*】“hide” text box from automatic win10 keyboard showing
上一篇: Linux系统巧用NMAP来收集主机信息