在UWP中,是否可以强制打开屏幕键盘(osk.exe)?
例如,在C#中可以使用System.Diagnostics.Process.Start("osk.exe");
但是在UWP中执行上述操作会导致编译错误,提示没有Process命名空间。
我知道在平板模式下,如果我以编程方式聚焦于文本框,它将显示屏幕键盘。
但在桌面模式下是否可能呢?
在UWP中,是否可以强制打开屏幕键盘(osk.exe)?
例如,在C#中可以使用System.Diagnostics.Process.Start("osk.exe");
但是在UWP中执行上述操作会导致编译错误,提示没有Process命名空间。
我知道在平板模式下,如果我以编程方式聚焦于文本框,它将显示屏幕键盘。
但在桌面模式下是否可能呢?
有没有办法让触摸键盘在桌面模式下出现?
请参考键盘交互中的文档
根据设备不同,当文本字段或其他可编辑文本控件获得焦点时,触摸键盘会出现,或者用户通过通知中心手动启用:
(来源:s-msft.com)
在平板模式下,当用户使用触摸输入将焦点设置到文本控件时,触摸键盘可以自动出现。然而,在桌面模式下,这种情况不会发生,并且在 UWP 中,目前没有 API 可以编程方式打开它。注意:用户可能需要前往“设置”>“系统”,并打开“将 Windows 设备更改为触摸友好型平板电脑”的“平板电脑模式”屏幕,以启用触摸键盘的自动出现。
我可以使用以下方法在桌面模式下显示/隐藏屏幕键盘:
CoreInputView.GetForCurrentView().TryShow(CoreInputViewKind.Keyboard)
代码示例:
.xaml文件:
<TextBox GotFocus="TextBox_OnGotFocus" LostFocus="TextBox_OnLostFocus" InputScope="Number"/>
.xaml.cs:
private void TextBox_OnGotFocus(object _, RoutedEventArgs __)
{
CoreInputView.GetForCurrentView().TryShow(CoreInputViewKind.Keyboard);
}
private void TextBox_OnLostFocus(object _, RoutedEventArgs __)
{
CoreInputView.GetForCurrentView().TryHide();
}