"Hide" Win10 自动键盘显示的文本框

"Hide" text box from automatic Win10 keyboard showing

我的目标是在用户单击文本框时显示 Windows 10 个屏幕键盘。

Windows 10 可以选择自动显示其屏幕键盘,即使在平板电脑模式之外,如果在设置中启用了特定选项。

但是,在使用 WPF 应用程序时,此逻辑似乎存在一些严重的问题 - 闪烁,根本不显示等。如果您有触摸屏 Win10,则可以在具有多个文本框的简单 WPF 应用程序上轻松测试它设备。

所以,我决定自己控制键盘,现在可以完美运行,禁用了自动键盘显示选项。但是,我不能确保每个用户 Windows 10 都会禁用此选项,所以我想 Windows "ignore" 单击我的 WPF 应用程序中的文本框,所以只应用程序本身控制键盘可见性。

所以,我的问题是 - 有没有什么方法可以让 Windows 忽略对特定文本框的关注?

PS。如果没有明确的方法来执行此操作,我将不胜感激关于 Windows 如何实际获取有关正在编辑的 WPF 文本框的信息的任何提示,这样我也许可以尝试使用我自己的 TextBox 实现,这不会触发这个逻辑。

更新:

看来,可以通过在 [= 的自定义实现中使用 FrameworkElementAutomationPeer 而不是 TextBoxAutomationPeer 来删除 "hooks" 用于发现文本框获得焦点的键盘13=],但这破坏了在自动化中使用此文本框的可能性(我不喜欢)。

我没有可测试的触摸屏设备 - 但通过我的快速鼠标点击测试,我看到有 TextBox.Focusable = false;

https://msdn.microsoft.com/en-us/library/system.windows.uielement.focusable(v=vs.110).aspx

这怎么会导致它无法获得键盘输入,所以也许可以在 TextBox 上放置另一个方法,例如:

txtBoxTestFocus_MouseDown 或 txtBoxTestFocus_TouchDown 然后可以设置 txtBoxTestFocus.Focusable = true;

不确定这是否有帮助,因为我无法对其进行测试,抱歉