我们开始在 Windows 8 中创建 WPF 触摸应用程序,最近迁移到 Windows 10。我们实现的一项功能是在 TextBox
获得焦点时打开 Windows 键盘。在 Windows 8 中,可以通过设置注册表设置 EdgeTargetDockedState
并启动 TabTip 进程将键盘停靠在底部:
string path = @"C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe";
var info = new ProcessStartInfo(path);
info.WindowStyle = ProcessWindowStyle.Maximized;
var p = new Process();
p.StartInfo = info;
p.Start();
然而,Windows 10 键盘似乎没有与 Windows 8 中相同的停靠行为。键盘现在覆盖任何隐藏任何应用程序底部的最大化窗口。只有未最大化的窗口会调整大小以适应剩余空间。
我检查了以下链接,但没有找到解决方案:
- https://superuser.com/questions/951841/windows-10-touch-keyboard-doesnt-dock-or-maximize-at-the-bottom-of-the-screen
- http://answers.microsoft.com/en-us/windows/forum/windows_10-desktop/windows-10-touch-keyboard-doesnt-dock/3c253400-568f-4e89-a253-0d7a747b5b63
能否以编程方式停靠 Windows 10 键盘以获得最大化窗口?
最佳答案
我开源了我的项目,以自动化与 WPF 应用程序中的 TabTip 集成有关的所有内容。
您可以在 nuget 上获得它,之后你只需要在你的应用程序启动逻辑中进行一个简单的配置:
TabTipAutomation.BindTo<TextBox>();
您可以将 TabTip 自动化逻辑绑定(bind)到任何 UIElement。虚拟键盘将在任何此类元素获得焦点时打开,并在元素失去焦点时关闭。不仅如此,TabTipAutomation 会将 UIElement(或 Window)移动到 View 中,这样 TabTip 就不会阻塞焦点元素。
有关更多信息,请参阅 project site .
澄清一下:如果您将使用这个包,TabTip 将不会停靠,但您的 UI 将在 View 中,我想这就是您想要实现的。
关于c# - 打开停靠在 WPF 中的 Windows 10 触摸键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769169/