2016-01-13 24 views
12

Rozpoczęliśmy tworzenie aplikacji dotykowej WPF w systemie Windows 8 i niedawno przeprowadziliśmy migrację do systemu Windows 10. Jedną z funkcji, którą zaimplementowaliśmy, jest otwarcie klawiatury systemu Windows, gdy ostrość zostanie ustawiona na TextBox. W Windows 8, można było do dokowania klawiatury do dołu poprzez ustawienie rejestru ustawienia EdgeTargetDockedState i rozpoczęciem procesu TabTip:Otwarta klawiatura dotykowa systemu Windows 10 zadokowana w pakiecie 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 klawiatura jednak nie wydają się mieć takie samo zachowanie jak w doku Windows 8. Klawiatura nakłada teraz każde zmaksymalizowane okno, które ukrywa dolną część dowolnej aplikacji. Tylko nie zmaksymalizowane okna są zmieniane w celu dopasowania do pozostałej przestrzeni.

Sprawdziłem poniższych linków, ale nie znalazł rozwiązanie:

Czy Windows 10 klawiatura być zadokowany programowo na zmaksymalizowane okna?

+0

Znalazłeś rozwiązanie? – nicruo

+0

O ile mi wiadomo, klawiatury w Windows 10 nie można zadokować, gdy okno jest zmaksymalizowane. Pytałem w linku Microsoft, gdzie można oficjalnie poprosić o tę funkcję, ale nie otrzymałem satysfakcjonującej odpowiedzi. Jeśli nie zostanie to zaimplementowane, myślę, że będę musiał spojrzeć na "prawie maksymalizując" okno, a następnie otwierając klawiaturę (co wydaje się bardzo brzydkim rozwiązaniem). –

Odpowiedz

5

I open-sourced mój projekt, aby zautomatyzować wszystko co dotyczy integracji TabTip w aplikacji WPF.

Można go pobrać na nuget, a potem wszystko, czego potrzebujesz to prosty config w aplikacjach logiki uruchamiania:

TabTipAutomation.BindTo<TextBox>(); 

Można powiązać logiki automatyki TabTip do dowolnego UIElement. Klawiatura wirtualna otworzy się, gdy dowolny element zostanie ustawiony, a zamknie się, gdy element straci ostrość. Nie tylko to, ale TabTipAutomation przeniesie widok UIElement (lub Window) do widoku, dzięki czemu TabTip nie będzie blokował elementu focus.

Aby uzyskać więcej informacji, zapoznaj się z project site.

Aby wyjaśnić: Jeśli będziesz używać tego pakietu, TabTip nie zostanie zadokowany, ale twój interfejs będzie widoczny, co, jak sądzę, jest tym, co chciałeś osiągnąć.

+0

Dzięki @ Макс Федотов, nie skończyłem używać twojego projektu, ale wybrałem i wyciągnąłem potrzebne elementy, co pomogło mi rozwiązać problem, z którym miałem do czynienia. – BigHeadCreations

2

Sprawdź ten artykuł: http://www.codeproject.com/Tips/1120263/Virtual-Keyboard-TabTip-integration-in-WPF-on-Win

Klawiatura wirtualna otworzy gdy każdy taki element będzie się skupić i będzie zamknąć, gdy element będzie tracić ostrość.

+0

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać odnośnik. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. – Marusyk