WPF 菜单栏 第一项为点击弹出下拉菜单其它项为点击切换选项卡
可以使用 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;
}
}
原文地址: https://www.cveoy.top/t/topic/bqWD 著作权归作者所有。请勿转载和采集!