Як встановити порядок вкладок у WPF? У мене є ItemControl, де деякі елементи розгорнуті, а деякі згорнуті, і я хотів би пропустити згорнуті, коли я роблю вкладки.
Будь-які ідеї?
Як встановити порядок вкладок у WPF? У мене є ItemControl, де деякі елементи розгорнуті, а деякі згорнуті, і я хотів би пропустити згорнуті, коли я роблю вкладки.
Будь-які ідеї?
Відповіді:
Ви можете пропустити елементи в послідовності вкладок, встановивши 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.
Ще одна альтернатива, яка працювала для мене в минулому, - це просто видалити всі явні TabIndex
оператори, і дозволити елементам керування використовувати порядок, який вони оголосили в XAML, робити свою магію.
Звичайно, це може зажадати від вас упорядкування елементів керування. Але це проста операція копіювання-вставки.
Ви можете використовувати KeyboardNavigation.TabNavigation = "None", щоб повністю пропустити вкладки для конкретного контролю.