Я работаю над некоторым XAML для приложения wpf, и у меня возникают проблемы с тем, чтобы заставить его делать то, что я хочу. Вот образец моего 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» не отображаются.
Я надеялся, что MenuItem будет работать только вне Меню, но я попытался сделать прямолинейную вещь, на всякий случай. Включение этих MenuItems в меню и, вместо этого, придание этому меню свойства ToolBar.OverflowMode = "Always" приводит к нежелательным стилям. Стрелка больше не присутствует, для активации подменю нужно нажать на запись «Специальные элементы», а расположение подменю выглядит немного не так.
Кто-нибудь знает, что происходит?
Редактировать: Добавление меню в переполнение производит именно то, что я просил (большой сюрприз). Что мне нужно, так это способ конвертировать заголовки и элементы верхнего уровня на уровень подменю. Я обратился к этому примеру шаблона элемента управления на MSDN для решения (ниже).
Edit, Edit:
@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>
Этот фрагмент не работает для меня. Я должен нажать на «Специальный» для отображения подменю.