我正在为一个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>
Run Code Online (Sandbox Code Playgroud)
当我点击工具栏的溢出按钮时,"特殊项目"菜单项旁边会出现一个小箭头,表示嵌套元素.但是,当我将鼠标悬停在"特殊项目"上或尝试单击它时,未显示MenuItems"C"和"D".
我希望MenuItem只能在菜单之外工作,但为了以防万一,我试着做直截了当的事情.在菜单中包含这些MenuItem,相反,为此菜单提供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> …Run Code Online (Sandbox Code Playgroud)