Как установить порядок вкладок в WPF? У меня есть ItemsControl, некоторые элементы которого развернуты, а некоторые свернуты, и я хотел бы пропустить свернутые, когда я использую табуляцию.
Любые идеи?
.net
wpf
tab-ordering
keyboard-navigation
Римский
источник
источник
Ответы:
Вы можете пропустить элементы в последовательности вкладок, установив KeyboardNavigation.IsTabStop для элемента в XAML.
KeyboardNavigation.IsTabStop="False"
Вы можете настроить триггер, который будет переключать это свойство в зависимости от развернутого состояния.
источник
Если вы хотите явно установить порядок табуляции для элементов в вашей форме, должно помочь следующее присоединенное свойство:
<Control KeyboardNavigation.TabIndex="0" ... />
Я говорю «предполагается, что поможет», поскольку я не считаю его очень надежным, хотя мне, вероятно, нужно больше узнать о том, как он предназначен для использования. Я публикую только этот наполовину готовый ответ, потому что никто больше не упоминал об этом свойстве.
Обратите внимание, что в Win RT свойство просто
TabIndex="0"
.источник
<DockPanel Panel.ZIndex="2">
помогает упорядочить точку входа в панели верхнего уровня.<Control KeyboardNavigation.TabIndex="0" ... />
Работает отлично ... Например-<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" />
Позволит вам перемещаться по этим двум полям со списком с помощью клавиши TAB.
источник
Я думаю, что здесь есть гораздо более простое решение, в верхней части вашего элемента управления или окна или чего-то еще, вы можете добавить:
KeyboardNavigation.TabNavigation="Cycle"
Это также автоматически игнорирует свернутые вкладки.
источник
Другая альтернатива, которая работала для меня в прошлом, - просто удалить все явные
TabIndex
операторы и позволить элементам управления использовать порядок, который они объявлены в XAML, творить чудеса.Это, конечно, может потребовать от вас изменения порядка элементов управления. Но это простая операция копирования и вставки.
источник
Вы можете использовать KeyboardNavigation.TabNavigation = "None", чтобы полностью пропустить переход на вкладку для определенного элемента управления.
источник