如何使用.NET 4.6.2在WPF中调用或关闭触摸键盘?

时间:2016-09-14 13:42:06

标签: c# wpf touch on-screen-keyboard .net-4.6.2

Microsoft的.NET Framework 4.6.2发行说明包括following

"软键盘支持可在WPF应用程序中自动调用和解除触摸键盘,而无需在Windows 10上禁用WPF手写笔/触控支持。在4.6.2之前,WPF应用程序不会隐式支持调用或者在不禁用WPF手写笔/触摸支持的情况下解除触摸键盘。这是因为触摸键盘在Windows 8中启动的应用程序中对焦的方式发生了变化。"

List of Changes同样声明:

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

但是我找不到任何关于如何做到这一点的迹象,我在官方API差异中找不到任何似乎是这样的东西。

任何人都可以帮我找到如何做这件事的文件,我现在可以据此做吗?

我的上下文是我有一个明确启动" OSK.exe"的应用程序。需要的时候。在具有内置Windows屏幕键盘的触摸设备上,这会导致显示两个屏幕键盘。我想禁用标准版本,只启动" OSK.exe"明确。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

要禁用软键盘,您可以执行注释中指示的内容:

WPF on Windows 7 with touch: hide soft keyboard (and the popup icon that enables it)

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中,您可以在TextBox中覆盖自动化对等项:

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

在Windows 7上放

就足够了
 InputMethod.IsInputMethodEnabled=”False”

希望它有所帮助。