Ich habe eine WPF Anwendung die unter Windows 10 bewusst im Tablet Modus benutzt werden soll. Ich benutze keine workarounds
mit der TabTip wie sie im Netz oft gefunden wird : Prozess Starten etc ... die Windows Basic Funktionalitäten im Tablet Modus funktionieren ganz gut - bis auf eine Sache.
Ich habe im Tablet Modus mehrere Felder die der Anwender ausfüllen soll. Jetzt ist im unteren Bildschirm Bereich eine Textbox zum ausfüllen. Klickt man mit einem Touch in die Box geht die Bildschirm Tastatur auf und verdeckt die Textbox wo der Anwender schreiben soll. **Man kann zwar schreiben, sieht aber nicht was man schreibt. Das Keyboard verdeckt die Anwendung. **
Ich suche dafür jetzt eine elegante Möglichkeit. Auf dem Handy kennt man das ja auch, dass der Bereich dann nach oben geschoben wird, so dass der Eingabebereich über der Bildschirm Tastatur zu sehen ist. Geht das Keyboard zu wandert der Bereich wieder automatisch nach unten.
Gibt es da was natives dass das Windows Keyboard das automatisch macht ? Muss ich dafür was spezielles im WPF beachten ?
Ich habe schon den Teil scrollable
gemacht und unten noch einiges an Luft angehängt in der Hoffnung, dass er dann automatisch scrollt - tut er aber nicht. Jetzt könnte ich beim Start des Editierens das ganze manuell nach oben schieben und nach dem Beenden des Editierens wieder zurück schieben - ich finde das aber wenig elegant. Das muss doch besser gehen ?
Wenn jemand einen Tipp hat würde ich mich freuen.
Gruß
Christoph
Moin Christoph,
den Beitrag hatte ich beim Googlen auch gesehen und habe ihn mir nach Deinem Beitrag nochmal (genauer) angesehen. Beim ersten Mal habe ich ihn verworfen, weil dort auch manuell die TabTip aufgerufen wird.
Ich schaue mir das nochmal an - es scheint ja nichts natives zu geben. Danke für Deine Mühe.
Gruß
Nachtrag für alle die über die Suchfunktion / Google auf den Beitrag stoßen und eine Lösung suchen:
Ich habe das jetzt so gelöst, dass ich mein Grid in einen Scrollviewer eingebettet und das Grid größer als den Scrollviewer gemacht habe. Der untere Bereich vom Grid ist leer geblieben. Die Scrollbars des ScrollViewers habe ich auf "Hidden" gestellt. Bei dem betroffenen Feld welches vorher von der TabTip verdeckt war habe ich ein GotFocus und LostFocus Event hinzugefügt. Wichtig: mit dem TouchEnter und TouchLeave hat es nicht sauber funktioniert. Optisch scrollt er kurz und gleich wieder zurück - als würde das TouchLeave Event sofort ausgelöst wenn Windows das TabTip startet.
Das GotFocus Event scrollt den Scrollviewer einfach über "ScrollToBottom()" nach unten und mit dem LostFocus Event wieder mit "ScrollToTop()" nach oben.
Wenn man jetzt über normale Win10 Boardmittel per Touch in das Feld klickt ist das Feld im oberen Teil und wird nicht mehr vom Keyboard verdeckt. Verlässt man das Feld scrollt das Bild wieder auf normal. Für die Spielwaren Messe Nürnberg ist das erst mal super gelöst und die Mädels können Bestellungen aufnehmen und über meine API in die Firma übertragen.
Danke für die Info.
Wichtig: mit dem TouchEnter und TouchLeave hat es nicht sauber funktioniert. Optisch scrollt er kurz und gleich wieder zurück - als würde das TouchLeave Event sofort ausgelöst wenn Windows das TabTip startet.
Wie ich das verstanden habe, wird TouchEnter beim Berühren und TouchLeave beim Loslassen aufgerufen.