带图像的WPF菜单项

时间:2009-11-19 14:42:26

标签: wpf image menu menuitem

                                                                                                                   

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

3 个答案:

答案 0 :(得分:138)

如何:

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

答案 1 :(得分:49)

简单的方法是不使用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,如图所示。

答案 2 :(得分:3)

对于 StackPanel ,使用Label而不是 TextBlock ,因为只有 Label 才允许您在菜单上使用助记符,例如 _Reports