如何定义 MenuItem.Icon 以便将 MenuItemHeader 文本放置在菜单项图像下方?感谢帮助!
大致如下:
<ContextMenu>
<MenuItem Header="Reports">
<MenuItem.Icon>
<Image Source="/XSoftArt.WPFengine;component/Images/export32x32xp.png"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
最简单的方法是不使用 Icon 属性,而是将图标放在标题中:
<Menu>
<MenuItem>
<MenuItem.Header>
<StackPanel>
<Image Width="20" Height="20" Source="/XSoftArt.WPFengine;component/Images/export32x32xp.png" />
<ContentPresenter Content="Reports" />
</StackPanel>
</MenuItem.Header>
</MenuItem>
<MenuItem Header="Export" />
<MenuItem Header="New record" />
</Menu>
对于这个简单的情况,可以将
<ContentPresenter Content="Reports" />
替换为 <TextBlock Text="Reports" />
,因为 ContentPresenter 无论如何都会用它来呈现字符串。 对于更复杂的 Header=
,您可以使用 ContentPresenter
,如图所示。
在 StackPanel 的情况下,使用 Label 而不是 TextBlock,因为只有 Label 才允许您在菜单上显示助记符,如 _Reports。
这对我有用:
<Menu Height="22" Grid.Row="0">
<MenuItem Header="View">
<MenuItem Header="Form"/>
</MenuItem>
<MenuItem Header="Tools">
<MenuItem Header="Options...">
<MenuItem.Icon>
<Image Source="./Images/Menu/settings.png"/>
</MenuItem.Icon>
</MenuItem>
</MenuItem>
</Menu>
并且您必须将图像的构建类型更改为
Resource
。