在 WPF 中,当我尝试使用 CTRL+TAB 切换选项卡时,它可以正常工作,但是如果选项卡位于父选项卡内,则子选项卡需要仅移动父选项卡?
我尝试添加外部方法,但它不起作用。
我希望当用户使用 CTRL+TAB 时仅父选项卡更改光标而不转到内部选项卡。
您可以抑制子选项卡项目上的事件,并通过在后面的代码中执行类似以下操作来重新引发它:
private void TabControl_KeyDown(object sender, KeyEventArgs e)
{
ParentTabs.RaiseEvent(e);
e.Handled = true;
}
在 xaml 中,引用该处理程序:
<TabControl x:Name="ParentTabs">
<TabItem Header="Parent 1">
<TextBlock Text="Parent 1" />
</TabItem>
<TabItem Header="Parent 2">
<TabControl>
<TabItem Header="Sub 1" KeyDown="TabControl_KeyDown">
<TextBlock Text="Sub 1" />
</TabItem>
<TabItem Header="Sub 2" KeyDown="TabControl_KeyDown">
<TextBlock Text="Sub 2" />
</TabItem>
<TabItem Header="Sub 3" KeyDown="TabControl_KeyDown">
<TextBlock Text="Sub 3" />
</TabItem>
</TabControl>
</TabItem>
<TabItem Header="Parent 3">
<TextBlock Text="Parent 3" />
</TabItem>
</TabControl>