假设您有一个StackPanel,它包含一个ScrollViewer,它包含另一个StackPanel,其ItemsControl带有一个绑定的ItemsSource . 此ItemsSource绑定到在运行时创建的网格集合 . 每个网格都包含一个标签和一个文本框/组合框/一些复选框,这些复选框在StackPanel中都有唯一的TabIndex值 . 这是xaml:
<ScrollViewer Name="scrollViewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<StackPanel Name="stackPanel" MinWidth="500" Width="Auto">
<ItemsControl Name="itemsControl" ItemsSource="{Binding ElementName=SomeWindow, Path=GridsCollection,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
</ScrollViewer>
我想简单地从一个控件到下一个控件,但仅限于网格集合中网格中的控件 . 到目前为止,我已经尝试了不同的KeyboardNavigation.TabNavigation设置,但没有任何运气 . 做这个的最好方式是什么?
2 回答
为每个想要表现的容器设置
TabNavigation
为KeyboardNavigationMode.Cycle,因此只要您使用Tab和Shift选项卡,焦点就不会转义它:如果要更改Ctrl Tab行为,请使用KeyboardNavigation.SetControlTabNavigation .
您可以应用隐式样式来禁用每个Control的Tab键,然后重新启用它以获得您想要的选项卡:
不要忘记将动态生成的网格上的IsTabStop设置为True