我正在为一个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>
当我点击我的工具栏的溢出按钮时,“特殊项目”菜单项会出现,并有一个小箭头,指示嵌套元素。但是,当我将鼠标悬停在“特殊项目”上或尝试单击它时,“C”和“D”菜单项未显示。
我希望菜单项可以在菜单之外正常工作,但为了确保万无一失,我尝试了简单直接的方法。将这些菜单项包含在一个菜单中,并将此菜单赋予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>
这个片段对我没有作用。我必须点击“特殊”才能显示子菜单。