对于我们的 WPF 应用程序,当它在 上运行时触摸屏 (Surface Pro .etc),TextBox
/PasswordBox
控件无法显示 虚拟键盘当他们专注时。
在 WPF 中实现此功能的任何好方法?
更新:
我们最终想要实现的是这样的:
如果用户在 PC 上运行应用程序 ,我们不关心这个功能,这意味着用户是否有物理键盘,我们什么都不做,就像在 PC 上运行的普通 WPF 应用程序一样。
如果用户在 Surface Pro 上运行 ,当他点击 TextBox
,内置的虚拟键盘可以显示出来,而且应该是人性化的,比如键盘永远不会掩盖输入元素。
更新 2:
那么,WPF 不能轻易设置一些属性来实现这个功能吗?在我看来,这个功能应该是WPF内置的,我不明白为什么找不到简单的方法来实现。
最佳答案
尝试这个,
首先检查物理键盘是否存在:
KeyboardCapabilities keyboardCapabilities = new Windows.Devices.Input.KeyboardCapabilities();
return keyboardCapabilities.KeyboardPresent != 0 ? true : false;
如果找不到物理键盘,请使用 Windows 内置的虚拟键盘:
Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.System) + Path.DirectorySeparatorChar + "osk.exe");
从这里得到帮助:
link 1
link 2
关于wpf - 如何使 WPF 输入控件在触摸屏上获得焦点时显示虚拟键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19085931/