如何使用.net 4.6.2在WPF中调用或取消触摸键盘



微软的。net Framework 4.6.2发布说明包括以下内容:

"软键盘支持在WPF应用程序中自动调用和取消触摸键盘,而无需禁用Windows 10上的WPF手写笔/触摸支持。在4.6.2之前,如果不禁用WPF触控笔/触控支持,WPF应用程序不会隐式地支持调用或取消触控键盘。这是由于从Windows 8开始,触控键盘在应用程序中跟踪焦点的方式发生了变化。"

变更列表同样声明:

"在WPF应用程序中启用自动调用和取消触摸键盘而不禁用Windows 10上的WPF手写笔/触摸支持[178044]"

但我找不到任何指示如何做到这一点,我找不到任何在官方的API差异,似乎是这样的。

谁能帮我找到如何做这件事的文档,我现在可以做吗?

我的上下文是,我有一个应用程序,显式启动"OSK.exe"时需要。在带有内置Windows屏幕键盘的触摸设备上,这将导致两个屏幕键盘同时显示。我想禁用标准的,只显式地启动"OSK.exe"。

谢谢!

我认为这(特别是评论)应该回答你的问题。简短的故事是:没有什么特别要做的,但它只适用于Win10周年版。

要禁用软键盘,您可以按照注释中的指示操作:

WPF在Windows 7触摸:隐藏软键盘(以及启用它的弹出图标)

https://blogs.msdn.microsoft.com/winuiautomation/2015/04/26/how-and-why-i-added-an-on-screen-keyboard-to-my-windows-store-app/

如果在Windows 10周年纪念版的WPF中,您可以在文本框中覆盖自动对等:

protected override AutomationPeer OnCreateAutomationPeer()
 {
 return new FrameworkElementAutomationPeer(this);
 }

在Windows 7上只需要输入

 InputMethod.IsInputMethodEnabled=”False”

希望能有所帮助。

最新更新