我的目标是在用户点击文本框时显示Windows 10屏幕键盘。
如果在设置中启用了特定选项,Windows 10可以选择自动显示其屏幕键盘,即使在平板电脑模式之外也是如此。
然而,当使用WPF应用程序时,这个逻辑似乎有一些严重的问题 - 闪烁,根本没有显示等。如果你有触摸屏Win10设备,你可以在带有几个文本框的简单WPF应用程序上轻松测试它。
所以,我决定自己控制键盘,现在效果很好,禁用了自动键盘显示选项。但是,我无法确保每个用户Windows 10都禁用此选项,因此我想在我的WPF应用程序中对Windows文本框进行“忽略”点击,因此只有应用程序本身才能控制键盘可见性。
所以,我的问题是 - 有没有办法让Windows忽略对特定文本框的关注?
PS。如果没有明确的方法可以做到这一点,我将非常感谢有关Windows如何实际获取有关正在编辑的WPF文本框的信息的任何提示,因此我可以使用我自己的TextBox实现,这不会触发此逻辑。 / p>
更新
在FrameworkElementAutomationPeer
的自定义实现中,通过使用TextBoxAutomationPeer
代替TextBox
,可以删除“钩子”键盘用于查找文本框的重点,然而,这可能会在自动化中使用这个文本框(我不喜欢)。
答案 0 :(得分:1)
我没有可以测试的触摸屏设备 - 但是从我的快速鼠标点击测试我看到有一个TextBox.Focusable = false;
https://msdn.microsoft.com/en-us/library/system.windows.uielement.focusable(v=vs.110).aspx
这怎么能让它无法获得键盘输入,所以可能在TextBox上添加另一种方法,如:
然后可以设置txtBoxTestFocus.Focusable = true;不确定这会有所帮助,因为我一直无法测试对不起