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

标签 c# wpf windows-10 on-screen-keyboard

我们开始在 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 中相同的停靠行为。键盘现在覆盖任何隐藏任何应用程序底部的最大化窗口。只有未最大化的窗口会调整大小以适应剩余空间。

我检查了以下链接,但没有找到解决方案:

能否以编程方式停靠 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/

相关文章:

c# - c#中的嵌入式字体

c# - 如何在 ASP.NET MVC 4 中实现全局化?

wpf - 将大量数据传递到用户控件中

c# - 如何在 C# 中读取二进制文件?

c# - 如何存储 WPF 应用程序的登录信息

连接期间出现 docker 错误 - 守护程序未在 Windows 10 上运行

curl - 在 PHP 7 windows 10 64 位 Apache 2.4 上启用 cURL

c# - 如何在 Windows 10 UWP 上获取用户的区域?

c# - 如何使用分隔 rune 本符号 (<) 而不会在我的网页上出现 HTML 错误?

用于 Linux 和/或 MonoDevelop 的 C# 代码格式化程序