1、修改自定义控件
(1)自定义控件中添加以下标记
<UserControl KeyboardNavigation.ControlTabNavigation="Local" IsTabStop="False"/>
KeyboardNavigation.ControlTabNavigation="Local" 设置焦点导航的方式,local可以把自定义控件中的子控件当做是引用窗体中的同级控件一样对待。
IsTabStop="False" 防止焦点中断,为了保证封装性,建议在这里设置。
(2)自定义控件需要停靠tabIndex的子控件中添加以下标记
<TextBox x:Name="txt2" TabIndex="{Binding Path=TabIndex, RelativeSource={RelativeSource AncestorType={x:Type local:CustomControl}}}"/>
CustomControl是自定义控件的名称。 如果有多个子控件,建议调整标签的前后顺序。
2、修改窗体
设置控件的TabIndex属性,也可以使用KeyboardNavigation.TabIndex。