2016-01-13 43 views
12

我们开始在Windows 8中创建WPF触摸应用程序,并最近迁移到Windows 10.我们实现的一个功能是在TextBox获得焦点时打开Windows键盘。在Windows 8中,有可能通过设置注册表设置EdgeTargetDockedState并启动TabTip过程停靠键盘底部:打开Windows 10触摸键盘停靠在WPF

 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键盘编程停靠的窗口最大化?

+0

您是否找到解决方案? – nicruo

+0

据我所知,当窗口最大化时,Windows 10中的键盘不能停靠。我已经在微软的链接中询问过这个功能可以正式申请的地方,但是还没有得到满意的答复。如果这不能实现,我想我得看看'几乎最大化'的窗口,然后打开键盘(这看起来像一个非常丑陋的解决方案)。 –

回答

5

我开源我的项目,以自动化所有关于WPF应用程序中的TabTip集成。

你可以得到它nuget,之后,所有你需要的是一个简单的配置在你的应用程序的启动逻辑:

TabTipAutomation.BindTo<TextBox>(); 

可以TabTip自动化逻辑绑定到任何的UIElement。虚拟键盘将在任何此类元素获得焦点时打开,并且当元素失去焦点时它将关闭。不仅如此,TabTipAutomation还会将UIElement(或Window)移动到视图中,以便TabTip不会阻止聚焦的元素。请参阅project site

澄清:如果您将使用此软件包TabTip将不会停靠,但您的用户界面将在视图中,我想这就是您想要实现的。

+0

Thanks @МаксФедотов,我没有最终使用你的项目,但我挑选并掏出了我需要的部分,这帮助我克服了我面临的问题。 – BigHeadCreations