Как настроить порядок вкладок в WPF? У меня есть ItemControl с некоторыми деталями, расширенными, а некоторые свалились и хотели бы пропустить свернутые, когда я табуляции.
Любые идеи?
Как настроить порядок вкладок в WPF? У меня есть ItemControl с некоторыми деталями, расширенными, а некоторые свалились и хотели бы пропустить свернутые, когда я табуляции.
Любые идеи?
Вы можете пропустить элементы в последовательности вкладок, установив KeyboardNavigation.IsTabStop на элемент в XAML.
KeyboardNavigation.IsTabStop="False"
Вы можете настроить триггер, который будет переключать это свойство на основе расширенного состояния.
Если вы хотите явно настроить порядок вкладок для элементов в своей форме, предполагается, что следующее прикрепленное свойство:
<Control KeyboardNavigation.TabIndex="0" ... />
Я говорю "должен помочь", поскольку я не нашел его очень надежным, хотя мне, вероятно, нужно больше узнать о том, как он предназначен для использования. Я только отправляю этот полупеченный ответ, потому что никто не упомянул об этом свойстве.
Обратите внимание, что в Win RT свойство просто TabIndex="0"
.
<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, работают с их магией.
Это, конечно, может потребовать, чтобы вы изменили порядок своих элементов управления. Но это простая операция копирования-вставки.
Также .NET 3.0 имеет класс, который автоматически устанавливает порядок вкладок, и вы можете переопределить это на основе разделов вашей формы.
(new TabOrderManager(this)).SetTabOrder(TabOrderManager.TabScheme.AcrossFirst);