我一直在努力使用WPF Menu
而我根本无法实现我想要的目标。
我尝试更改Menu
和MenuItem
控件上的默认样式,但结果很糟糕。然后我尝试使用控件模板来设置它,但是,我想我已经意识到我的WPF技能还没有。
这是我想要的结果的图片:
有没有人可以指出我正确的方向?或者也许可以帮助我一些可以得到我想要的结果的xaml?
答案 0 :(得分:3)
您可以将ItemsPanel
设置为水平方向,如下所示:
<Menu.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</Menu.ItemsPanel>
因为Menu
和MenuItem
都来自ItemsControl。
完整示例:
<Menu Width="100"
Height="30"
Margin="10"
VerticalAlignment="Top"
HorizontalAlignment="Left"
Background="White"
BorderBrush="Blue"
BorderThickness="1">
<Menu.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</Menu.ItemsPanel>
<MenuItem Header="_ITEM1">
<MenuItem.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</MenuItem.ItemsPanel>
<MenuItem Header="_SUBMENU1" IsCheckable="true"/>
<MenuItem Header="_SUBMENU2" IsCheckable="true"/>
<MenuItem Header="_SUBMENU3" IsCheckable="true"/>
<Separator/>
</MenuItem>
<MenuItem Header="_ITEM2">
<MenuItem Header="Undo"/>
<MenuItem Header="Redo"/>
<Separator/>
<MenuItem Header="Cut"/>
<MenuItem Header="Copy"/>
<MenuItem Header="Paste"/>
</MenuItem>
</Menu>
<强> Output
强>