Ich habe IsTabStop
auf alle Steuerelemente in meinem Fenster auf false gesetzt, so dass beim Drücken der Tab-Taste der Fokus nicht bewegt wird (ich brauche die Tab-Taste für etwas anderes). Aber dadurch wird die Navigation mit der Pfeiltaste unterbrochen - ich klicke auf ein Objekt in ListView
und drücke dann nach oben / unten, um das ausgewählte Objekt nicht mehr zu ändern.
Gibt es eine Möglichkeit, die Tab-Navigation zu deaktivieren, ohne die Pfeiltasten zu berühren? Sie scheinen verwandt zu sein.
Ich habe versucht, IsTabStop
auf wahr und TabNavigation
auf false zu setzen, aber es funktioniert auch nicht.
In Ihrem Fenster (oder einem Vorfahre der Steuerelemente, an denen der Tab nicht arbeiten soll), schlucken Sie die Tabulatortaste.
Sie können es schlucken, indem Sie es an das PreviewKeyDown-Ereignis anhängen und e.Handled = true festlegen, wenn der Schlüssel ein Tab ist.
Reiner Code dahinter:
%Vor%Sie können einen Keyboard-Handler auch so einstellen:
%Vor%Sie benötigen jedoch einen entsprechenden Event-Handler:
%Vor%Ich glaube, Sie möchten die angefügte KeyboardNavigation.TabNavigation Eigenschaft auf Once in Ihrer ListView setzen. Ich habe dies mit einem templated ItemsControl getan und es scheint mir das Verhalten zu geben, das ich von einer ListBox erwarten würde, wo eine Registerkarte in das Steuerelement das erste Element auswählen wird, aber eine zusätzliche Registerkarte wird direkt aus der Listbox und auf die Registerkarte nächste Kontrolle.
Wenn Sie dieser Methode folgen, kann Ihr Beispiel möglicherweise auf genau dieses Kürzel verkürzt werden.
%Vor%Ich habe das nicht mit dem ListView-Steuerelement getestet, aber ich wäre nicht überrascht, wenn es für Sie funktioniert.
Tags und Links wpf navigation tabstop