我工作的一些XAML的WPF应用程序,我有一些麻烦它做我想做的。这是我的XAML的一个样本:WPF:嵌套的MenuItems在工具栏
<!-- 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>
当我点击我的工具栏的溢出按钮,“特殊项目”菜单项出现一个小箭头旁边,表示嵌套的元素。但是,当我将鼠标悬停在“特殊项目”上或尝试单击它时,MenuItems“C”和“D”未显示。
我希望菜单项将只是一个菜单之外的工作,但我试着做了直接的东西,以防万一。在菜单中包含这些MenuItems,而是给这个菜单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>
这段代码对我不起作用。我必须点击'Special'才能显示子菜单。
你知道,这正是我一开始想要做的。我在细读MSDN并找到了Role属性,但我不知道改变它的正确方法。然后我发现上面贴出的快速修复剪切和粘贴怪物,哈哈。我是新来的wpf。 我试过了代码,不幸的是,子菜单没有出现在鼠标悬停中。我会再调查一下。 – 2009-04-18 02:36:46