wpf窗体中复合控件焦点控制

1、         自定义控件

  • 在UserControl标记中
<UserControl KeyboardNavigation.ControlTabNavigation="Local" IsTabStop="False">

KeyboardNavigation.ControlTabNavigation="Local" 设置焦点导航的方式,local可以把自定义控件中的子控件当做是引用窗体中的同级控件一样对待。

IsTabStop="False" 防止焦点中断,为了保证封装性,建议在这里设置。

  • 子控件的TabIndex从父控件中获取
<TextBox x:Name="txt2" TabIndex="{Binding Path=TabIndex, RelativeSource={RelativeSource AncestorType={x:Type local:CustomControl}}}"/>

CustomControl是自定义控件的名称。

如果有多个子控件,建议调整标签的前后顺序。

2、         窗体

设置控件的TabIndex属性,也可以使用KeyboardNavigation.TabIndex。

源码下载

 

参考:http://msdn.microsoft.com/zh-cn/library/aa969768(VS.90).aspx?ppud=4

原文地址:https://www.cnblogs.com/smallidea/p/3412699.html