Как настроить порядок вкладок в WPF? У меня есть ItemControl с некоторыми деталями, расширенными и некоторые рухнули, и я хотел бы пропустить свернутые, когда я набираю табуляции.Настройка вкладок в WPF
Любые идеи?
Как настроить порядок вкладок в WPF? У меня есть ItemControl с некоторыми деталями, расширенными и некоторые рухнули, и я хотел бы пропустить свернутые, когда я набираю табуляции.Настройка вкладок в WPF
Любые идеи?
Вы можете пропустить элементы в последовательности вкладок, установив KeyboardNavigation.IsTabStop на элемент в XAML.
KeyboardNavigation.IsTabStop="False"
Вы можете настроить триггер, который будет переключать это свойство на основе расширенного состояния.
Вы также можете использовать Focusable = "False", который удаляет его из фокуса клавиатуры, а также порядок табуляции. – 2011-07-28 23:51:32
@Geoff Я сделал это с кучей кнопок, и это не сработало, просто fyi. – ToastyMallows 2013-06-07 16:00:41
Также у .NET 3.0 есть класс, который автоматически устанавливает порядок вкладок, и вы можете переопределить это на основе разделов вашей формы.
(new TabOrderManager(this)).SetTabOrder(TabOrderManager.TabScheme.AcrossFirst);
Если вы хотите явно установить порядок табуляции для элементов в форме, следующее вложенное свойство должно помочь:
<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, для их магии.
Это, конечно же, может потребовать от вас изменить порядок контроля. Но это простая операция копирования-вставки.
Предлагаемый ответ Джесси - это способ пойти ... – 2008-12-12 10:20:59
, который, по-видимому, является поведением по умолчанию? – 2013-02-06 11:22:44