【发布时间】:2012-03-01 05:12:42
【问题描述】:
我有一个窗口,其中有两个内容控件,我在运行时在其中加载用户控件, 我需要为 ContentControl1 和 ContentControl2 中的用户控件设置 Tab 键顺序吗? 我怎样才能做到这一点?
【问题讨论】:
-
我需要在运行时加载的 UserControl 中设置控件的选项卡顺序。我已经尝试过该线程中给出的解决方案,但它对我不起作用。
我有一个窗口,其中有两个内容控件,我在运行时在其中加载用户控件, 我需要为 ContentControl1 和 ContentControl2 中的用户控件设置 Tab 键顺序吗? 我怎样才能做到这一点?
【问题讨论】:
您可以使用 KeyboardNavigation.TabNavigation 和 KeyboardNavigation.TabIndex 来实现这一点。
例子:
<ContentControl Content="{Binding Head}" x:Name="HeadCtrl" Height="50" ContentTemplate="{StaticResource VectorTemplate}"/>
<DataTemplate x:Key="VectorTemplate">
<StackPanel KeyboardNavigation.TabNavigation="Local" KeyboardNavigation.TabIndex="-1">
<Button Content="{Binding Path=X}" KeyboardNavigation.TabIndex="0" ></Button>
<Button Content="{Binding Path=Y}" KeyboardNavigation.TabIndex="1" ></Button>
</StackPanel>
</DataTemplate>
【讨论】:
我能理解的是设置您在运行时添加的用户控件的 Tab 顺序。这样做怎么样:
var usercontrol = new UserControl1();
usercontrol.TabIndex = 0;
ContentControl1.Content = usercontrol;
【讨论】: