Jak ustawić kolejność kart w WPF? Mam ItemsControl z niektórymi elementami rozwiniętymi, a niektórymi zwiniętymi i chciałbym pominąć zwinięte elementy, gdy używam tabulatora.
Jakieś pomysły?
.net
wpf
tab-ordering
keyboard-navigation
Rzymski
źródło
źródło
Odpowiedzi:
Możesz pominąć elementy w sekwencji kart, ustawiając KeyboardNavigation.IsTabStop w elemencie w języku XAML.
KeyboardNavigation.IsTabStop="False"
Możesz skonfigurować wyzwalacz, który przełączałby tę właściwość na podstawie stanu rozwiniętego.
źródło
Jeśli chcesz jawnie ustawić kolejność tabulatorów dla elementów w swoim formularzu, powinna pomóc następująca załączona właściwość:
<Control KeyboardNavigation.TabIndex="0" ... />
Mówię „powinien pomóc”, ponieważ nie uważam go za bardzo niezawodny, chociaż prawdopodobnie muszę przeczytać więcej o tym, jak ma być używany. Publikuję tylko tę niedopracowaną odpowiedź, ponieważ nikt inny nie wspomniał o tej właściwości.
Zwróć uwagę, że w Win RT właściwość jest just
TabIndex="0"
.źródło
<DockPanel Panel.ZIndex="2">
pomaga zamówić punkt wejścia do paneli najwyższego poziomu.<Control KeyboardNavigation.TabIndex="0" ... />
Działa doskonale ... Na przykład-<ComboBox Height="23" Margin="148,24,78,0" Name="comboBoxDataSet" VerticalAlignment="Top" SelectionChanged="comboBoxDestMarketDataSet_SelectionChanged" DropDownOpened="comboBoxDestMarketDataSet_DropDownOpened" KeyboardNavigation.TabIndex="0" /> <ComboBox Height="23" Margin="148,56,78,0" Name="comboBoxCategory" VerticalAlignment="Top" SelectionChanged="comboBoxDestCategory_SelectionChanged" DropDownOpened="comboBoxDestCategory_DropDownOpened" KeyboardNavigation.TabIndex="1" />
Pozwoli ci poruszać się po tych dwóch polach kombi za pomocą klawisza TAB.
źródło
Myślę, że jest tutaj znacznie łatwiejsze rozwiązanie, u góry w twojej kontroli lub oknie lub cokolwiek innego, możesz dodać:
KeyboardNavigation.TabNavigation="Cycle"
To również automatycznie ignoruje zwinięte karty.
źródło
Inną alternatywą, która działała dla mnie w przeszłości, jest po prostu usunięcie wszystkich jawnych
TabIndex
instrukcji i pozwolenie kontrolkom na użycie kolejności, w jakiej są zadeklarowane w XAML, aby działały magicznie.Może to oczywiście wymagać zmiany kolejności elementów sterujących. Ale to jest prosta operacja kopiuj-wklej.
źródło
Możesz użyć KeyboardNavigation.TabNavigation = "None", aby całkowicie pominąć tabulację w celu uzyskania określonej kontroli.
źródło