可以使用 WPF 中的 Menu 和 TabControl 控件实现这个需求。

首先,我们在 Menu 控件中添加第一项作为弹出下拉菜单,并在该项下添加多个 MenuItem,作为下拉菜单中的选项。在其它项中添加 MenuItem,作为切换选项卡的按钮。

接着,在 TabControl 控件中添加多个 TabItem,作为不同选项卡的内容。每个 TabItem 可以包含任意的 WPF 控件,用于显示不同的内容。

最后,处理 Menu 和 MenuItem 的 Click 事件,以及 TabControl 的 SelectionChanged 事件,实现菜单下拉选项的响应和选项卡的切换。

下面是一个简单的示例代码:

<Window>
    <Grid>
        <Menu>
            <MenuItem Header="File">
                <MenuItem Header="New"/>
                <MenuItem Header="Open"/>
                <MenuItem Header="Save"/>
            </MenuItem>
            <MenuItem Header="View" Click="MenuItem_Click">
                <MenuItem Header="Tab 1"/>
                <MenuItem Header="Tab 2"/>
                <MenuItem Header="Tab 3"/>
            </MenuItem>
        </Menu>
        <TabControl SelectionChanged="TabControl_SelectionChanged">
            <TabItem Header="Tab 1">
                <TextBlock Text="Content of Tab 1"/>
            </TabItem>
            <TabItem Header="Tab 2">
                <TextBlock Text="Content of Tab 2"/>
            </TabItem>
            <TabItem Header="Tab 3">
                <TextBlock Text="Content of Tab 3"/>
            </TabItem>
        </TabControl>
    </Grid>
</Window>
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
    MenuItem menuItem = e.Source as MenuItem;
    if (menuItem != null)
    {
        string tabHeader = menuItem.Header.ToString();
        foreach (TabItem tab in tabControl.Items)
        {
            if (tab.Header.ToString() == tabHeader)
            {
                tabControl.SelectedItem = tab;
                break;
            }
        }
    }
}

private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    MenuItem menuItem = viewMenuItem as MenuItem;
    if (menuItem != null)
    {
        menuItem.Header = (tabControl.SelectedItem as TabItem).Header;
    }
}
WPF 菜单栏 第一项为点击弹出下拉菜单其它项为点击切换选项卡

原文地址: https://www.cveoy.top/t/topic/bqWD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录