Wie lege ich die Tab-Reihenfolge in WPF fest? Ich habe ein ItemsControl, bei dem einige Elemente erweitert und einige reduziert sind, und möchte die reduzierten Elemente überspringen, wenn ich tippe.
Irgendwelche Ideen?
.net
wpf
tab-ordering
keyboard-navigation
Römisch
quelle
quelle
Antworten:
Sie können Elemente in der Registerkartenfolge überspringen, indem Sie KeyboardNavigation.IsTabStop für das Element in XAML festlegen.
Sie können einen Trigger einrichten, der diese Eigenschaft basierend auf dem erweiterten Status umschaltet.
quelle
Wenn Sie die Tabulatorreihenfolge für Elemente in Ihrem Formular explizit festlegen möchten, soll die folgende angehängte Eigenschaft helfen:
Ich sage "soll helfen", da ich es nicht sehr zuverlässig fand, obwohl ich wahrscheinlich mehr darüber lesen muss, wie es verwendet werden soll. Ich poste diese halbherzige Antwort nur, weil sonst niemand diese Eigenschaft erwähnt hat.
Beachten Sie, dass in Win RT die Eigenschaft nur ist
TabIndex="0"
.quelle
<DockPanel Panel.ZIndex="2">
hilft, den Einstiegspunkt für Panels der obersten Ebene zu bestellen.<Control KeyboardNavigation.TabIndex="0" ... />
Funktioniert einwandfrei ... Zum Beispiel-Ermöglicht das Navigieren durch diese beiden Kombinationsfelder mit der TAB-Taste.
quelle
Ich denke, es gibt hier eine viel einfachere Lösung, ganz oben in Ihrem Steuerelement oder Fenster oder was auch immer, Sie könnten hinzufügen:
Dies ignoriert auch automatisch die reduzierten Registerkarten.
quelle
Eine andere Alternative, die in der Vergangenheit für mich funktioniert hat, besteht darin, einfach alle expliziten
TabIndex
Anweisungen zu entfernen und die Steuerelemente die Reihenfolge verwenden zu lassen, in der sie in XAML deklariert sind.Dies kann natürlich erfordern, dass Sie Ihre Steuerelemente neu anordnen. Dies ist jedoch ein einfacher Vorgang zum Kopieren und Einfügen.
quelle
Sie können KeyboardNavigation.TabNavigation = "None" verwenden, um das Tabbing für ein bestimmtes Steuerelement vollständig zu überspringen.
quelle