Подтвердить что ты не робот

TabIndex против KeyboardNavigation.TabIndex в WPF

В чем разница между TabIndex и KeyboardNavigation.TabIndex в WPF? Когда использовать каждый?

4b9b3361

Ответ 1

@akjoshi включил в свой ответ очень важную информацию о TaxIndex, но я подумал, что немного больше объяснений поможет.

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

enter image description here

Решение прост:

Примените это прикрепленное свойство к основному контейнеру каждого повторяющегося элемента.

KeyboardNavigation.TabNavigation="Local" 

Этот перечисление имеет все виды значений, но это тот, который используется для вложенных элементов управления.

Примечание. Я установил IsTabStop=false для самого ItemsControl (и это не является фактическим кодом для вышеприведенного графика).

<ItemsControl ItemsSource="{Binding CurrentItem.CustomsItems}" IsTabStop="False">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <ctl:CustomsItem KeyboardNavigation.TabNavigation="Local" Margin="0,0,0,8"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

Ответ 2

Некоторые элементы управления, такие как CheckBox, имеют свойство TabIndex, но не все элементы управления имеют это свойство, но вы можете захотеть, чтобы они имели фокус и участвовали в навигации фокусировки, в таких случаях можно использовать прикрепленное свойство KeyboardNavigation.TabIndex. Примером такого управления является Hyperlink

Помимо этого KeyboardNavigation класс предоставляет множество других функций для настройки навигации по фокусу, например, поведение навигации на вкладке, KeyboardNavigationMode и т.д.

Навигационное поведение навигационный контейнер можно изменить установка прилагаемого Свойства клавиатуры TabNavigation, ControlTabNavigation, и Направленная Навигация. Эти свойства имеют тип KeyboardNavigationMode и возможные значения: Continue, Local, Содержат, Цикл, Один раз и Нет. значение по умолчанию - "Продолжить", что означает элемент не является навигацией контейнер.

http://msdn.microsoft.com/en-us/library/aa969768.aspx#Keyboard_Navigation