TabIndex
WPF和WPF有什么区别KeyboardNavigation.TabIndex
?什么时候使用每个?
2 回答
@akjoshi 在他的回答中包含了一条关于 TabIndex 的非常重要的信息,但我认为更多的解释会有所帮助。
如果你有一个重复的项目,如果你不小心,ItemsControl
你最终会得到这样的标签顺序。
解决方案很简单:
将此附加属性应用于每个重复项的主容器。
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>
有些控件像CheckBox
有TabIndex
属性但不是所有的控件都有这个属性,但是你可能希望它们有焦点并参与焦点导航,KeyboardNavigation.TabIndex
在这种情况下可以使用附加属性。这种控制的一个例子是Hyperlink
除了这个KeyboardNavigation类提供了很多其他功能来设置焦点导航,比如标签导航行为、KeyboardNavigationMode 等。
可以通过设置附加的 KeyboardNavigation 属性 TabNavigation、ControlTabNavigation 和 DirectionalNavigation 来更改导航容器的导航行为。这些属性的类型为 KeyboardNavigationMode,可能的值为 Continue、Local、Contained、Cycle、Once 和 None。默认值为 Continue,这意味着该元素不是导航容器。
http://msdn.microsoft.com/en-us/library/aa969768.aspx#Keyboard_Navigation