打开停靠在WPF中的Windows 10触摸键盘

本文关键字:Windows 触摸 键盘 中的 WPF 停靠 | 更新日期: 2023-09-27 18:30:12

我们开始在Windows 8中创建WPF触摸应用程序,最近迁移到Windows 10。我们实现的一个功能是在TextBox接收焦点时打开Windows键盘。在Windows8中,可以通过设置注册表设置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中的Windows 10触摸键盘

我开源了我的项目,以自动化WPF应用程序中与TabTip集成有关的一切。

你可以在nuget上获得它,之后你只需要在应用程序启动逻辑中进行简单的配置:

TabTipAutomation.BindTo<TextBox>();

您可以将TabTip自动化逻辑绑定到任何UIElement。当任何这样的元素获得焦点时,虚拟键盘将打开,当元素失去焦点时,它将关闭。不仅如此,TabTipAutomation还会将UIElement(或Window)移动到视图中,这样TabTip就不会阻塞聚焦元素。

有关更多信息,请参阅项目网站。

澄清一下:如果你将使用这个包,TabTip将不会停靠,但你的UI将在视图中,我想这就是你想要实现的。

查看本文:http://www.codeproject.com/Tips/1120263/Virtual-Keyboard-TabTip-integration-in-WPF-on-Win

当任何这样的元素获得焦点时,虚拟键盘将打开,当元素失去焦点时,它将关闭。