.net WPF中的TabIndex与KeyboardNavigation.TabIndex
WPF中的.net WPF中的TabIndex与KeyboardNavigation.TabIndex,.net,wpf,focus,tabindex,keyboard-navigation,.net,Wpf,Focus,Tabindex,Keyboard Navigation,WPF中的TabIndex和KeyboardNavigation.TabIndex之间有什么区别?何时使用每个控件?某些控件(如复选框具有选项卡索引属性,但并非所有控件都具有此属性,但您可能希望它们具有焦点并参与焦点导航、附加属性键盘导航。在这种情况下,可以启用选项卡索引。这种控制的一个例子是 除此之外,该类还提供了许多其他功能来设置焦点导航,如选项卡导航行为、键盘导航模式等 计算机的导航行为 导航容器可以通过以下方式更改: 设置附加的 键盘导航属性 TabNavigation,ControlT
TabIndex
和KeyboardNavigation.TabIndex
之间有什么区别?何时使用每个控件?某些控件(如复选框
具有选项卡索引
属性,但并非所有控件都具有此属性,但您可能希望它们具有焦点并参与焦点导航、附加属性键盘导航。在这种情况下,可以启用选项卡索引。这种控制的一个例子是
除此之外,该类还提供了许多其他功能来设置焦点导航,如选项卡导航行为、键盘导航模式等
计算机的导航行为
导航容器可以通过以下方式更改:
设置附加的
键盘导航属性
TabNavigation,ControlTabNavigation,
和定向导航。这些
属性类型为
键盘导航模式和
可能的值为Continue、Local、,
包含、循环、一次和无。这个
默认值为Continue,这意味着
元素不是导航
容器
@akjoshi在他的回答中包含了关于TabIndex的一条非常重要的信息,但我认为多做一点解释会有所帮助
如果你有一个ItemsControl
重复一个项目,如果你不小心的话,你会得到一个
解决方案很简单:
将此附加属性应用于每个重复项的主容器
KeyboardNavigation.TabNavigation="Local"
它有各种各样的值,但这是用于嵌套控件的值
注意我已经为ItemsControl
本身设置了IsTabStop=false
(不,这不是上图的实际代码)
<ItemsControl ItemsSource="{Binding CurrentItem.CustomsItems}" IsTabStop="False">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ctl:CustomsItem KeyboardNavigation.TabNavigation="Local" Margin="0,0,0,8"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>