WPF菜单项与图像

如何定义MenuItem.Icon,使MenuItemHeader文本放在菜单项图像下方?感谢您的帮助!

简单的方法是不使用Icon属性,而是将图标放在Header中:

<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" />可以被replace为<TextBlock Text="Reports" />因为ContentPresenter将用来呈现string。 对于更复杂的Header= ,可以使用ContentPresenter ,如图所示。

这是怎么回事:

 <ContextMenu> <MenuItem Header="Reports"> <MenuItem.Icon> <Image Source="/XSoftArt.WPFengine;component/Images/export32x32xp.png"/> </MenuItem.Icon> </MenuItem> </ContextMenu> 

StackPanel的情况下,使用Label而不是TextBlock,因为只有Label会允许你在菜单上有助记符,比如_Reports