2016-01-13 116 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