我正在为 wpf 应用程序开发一些 XAML,但在让它做我想做的事情时遇到了一些麻烦。这是我的 XAML 示例:
<!-- Tool Bar Tray -->
<ToolBarTray Name="toolBarTray1" DockPanel.Dock="Top">
<!-- File And Edit Tools -->
<ToolBar Name="toolBar1" Band="1" BandIndex="1">
<!-- Regular Items -->
<Button>A</Button>
<Button>B</Button>
<!-- Overflow Menu For Special Items -->
<MenuItem ToolBar.OverflowMode="Always" Header="Special Items">
<MenuItem Header="C"/>
<MenuItem Header="D"/>
</MenuItem>
</ToolBar>
</ToolBarTray>
当我单击工具栏的溢出按钮时,“特殊项目”MenuItem 旁边会出现一个小箭头,表示嵌套元素。但是,当我将鼠标悬停在“特殊项目”上或尝试单击它时,没有显示菜单项“C”和“D”。
我希望 MenuItem 只能在菜单之外工作,但我试图做直截了当的事情,以防万一。将这些 MenuItems 包含在一个 Menu 中,相反,为此 Menu 提供 ToolBar.OverflowMode="Always" 属性会产生一些不需要的样式。箭头不再出现,需要点击“特殊物品”条目才能激活子菜单,子菜单定位看起来有点不对劲。
有谁知道发生了什么?
编辑:在溢出中添加一个菜单正是我所要求的(大惊喜)。我所追求的是一种将顶级标题和项目转换为子菜单级别的方法。我已经转向MSDN上的这个控制模板示例寻求解决方案(如下)。
编辑,编辑:@gcores(评论讨论):真的吗?我错过了什么吗?
<ToolBar Name="toolBar1" Band="1" BandIndex="4">
<!-- Displayed Buttons -->
<Button>A</Button>
<Button>B</Button>
<!-- Special Items Menu -->
<Menu ToolBar.OverflowMode="Always" >
<MenuItem Style="{StaticResource MenuItemStyle}" Header="Special">
<MenuItem Header="C"/>
<MenuItem Header="D"/>
</MenuItem>
</Menu>
</ToolBar>
这个片段对我不起作用。我必须单击“特殊”才能显示子菜单。