WPF:从 win10 上的 WebBrowser 控件中的文本框调用屏幕键盘

WPF: Invoking onscreen keyboard from a textbox in WebBrowser control on win10

我正在开发允许在 WebBrowser 控件中打开网页的 WPF 软件(使用 vb)。 WPF 软件 运行 在平板电脑上处于全屏模式并且 Windows 无法单独调用屏幕键盘。

我们所做的是首先禁用 wpf 平板电脑支持(这里的示例:https://msdn.microsoft.com/library/dd901337(v=vs.90).aspx),然后启用带有焦点跟踪的触摸键盘,如下所示:

Dim Config As InputPanelConfiguration = New InputPanelConfiguration()
Dim ConfigIntf As IInputPanelConfiguration = CType(Config, IInputPanelConfiguration)
If ConfigIntf IsNot Nothing Then
    ConfigIntf.EnableFocusTracking()
End If

这适用于 Windows 8 / 8.1 平板电脑,用户可以通过点击文本框在线输入文本框。

现在的问题是Win10平板电脑。相同的代码会导致完全禁用触摸屏,并且软件似乎变为 "stuck",因为触摸屏对触摸没有反应。如果我不首先禁用 wpf 平板电脑支持,则在 WebBrowser 控件内点击网页上的文本框时,屏幕键盘将不会启动。

部分原因是浏览器功能。如果我直接在 Win10 平板电脑上使用 IE 或 Edge 并点击文本框,则没有任何反应(当没有连接物理键盘时)。在Chrome中,屏幕键盘自动打开。

这里的任何人都可以提出一个好方法来在 Win10 用户点击在 WPF WebBrowser 控件中打开的网页上的文本框时打开 osk 吗? (不管是 C#,VB 还是无关语言)

好吧,到目前为止我还没有找到软件解决方案,但我确实通过 Windows 设置解决了我的问题:

http://www.windowscentral.com/auto-display-touch-keyboard-windows-10-desktop-mode

有一个设置可以控制 osk 是否会自动打开。