Настройка порядка вкладок в WPF - PullRequest
87 голосов
/ 11 декабря 2008

Как настроить порядок вкладок в WPF? У меня есть ItemsControl, в котором некоторые элементы раскрыты, а некоторые свернуты, и я хотел бы пропустить свернутые элементы, когда вкладываю вкладку.

Есть идеи?

Ответы [ 5 ]

85 голосов
/ 26 февраля 2009

Если вы хотите явно установить порядок вкладок для элементов в вашей форме, следующее вспомогательное свойство должно помочь:

<Control KeyboardNavigation.TabIndex="0" ... />

Я говорю «должен помочь», так как не нашел его очень надежным, хотя мне, вероятно, нужно больше узнать о том, как он предназначен для использования. Я публикую этот полусгоревший ответ только потому, что никто не упомянул это свойство.


Обратите внимание, что в Win RT это просто TabIndex="0".

59 голосов
/ 11 декабря 2008

Вы можете пропустить элементы в последовательности вкладок, установив KeyboardNavigation.IsTabStop для элемента в XAML.

KeyboardNavigation.IsTabStop="False"

Вы можете установить триггер, который будет переключать это свойство в зависимости от расширенного состояния.

24 голосов
/ 25 мая 2010

<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.

9 голосов
/ 30 ноября 2011

Я думаю, что здесь есть гораздо более простое решение, в верхней части окна управления, окна или чего-либо еще, вы можете добавить:

KeyboardNavigation.TabNavigation="Cycle"

Это также автоматически игнорирует свернутые вкладки.

6 голосов
/ 06 июня 2014

Другая альтернатива, которая работала для меня в прошлом, - это просто удалить все явные операторы TabIndex и позволить элементам управления использовать порядок, который они были объявлены в XAML, чтобы творить свою магию.

Это, конечно, может потребовать от вас переупорядочить элементы управления. Но это простая операция копирования-вставки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...