嵌套选项卡中的 WPF Ctrl+Tab 功能 [已关闭]

问题描述 投票:0回答:1

在 WPF 中,当我使用

Ctrl+Tab
TabControl
的选项卡之间切换时,事情按预期工作,在每个选项卡之间切换。但是,当父选项卡内有嵌套选项卡时,这些 nested 选项卡会与
Ctrl+Tab
而不是父选项卡进行切换。我希望
Ctrl+Tab
仅交换父选项卡,而不交换嵌套选项卡。有办法实现吗?

我尝试添加外部方法来强制控件切换父选项卡而不是嵌套选项卡,但我无法让任何东西起作用。

wpf wpf-controls
1个回答
0
投票

您可以抑制子选项卡项目上的事件,并通过执行类似的操作与父母一起重新引发该事件。

背后代码:

        private void TabControl_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyboardDevice.Modifiers == ModifierKeys.Control 
                && e.Key == Key.Tab)
            {
                ParentTabs.RaiseEvent(e);
                e.Handled = true;
            }
        }

在 xaml 中,引用该处理程序:

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>

结果:

© www.soinside.com 2019 - 2024. All rights reserved.