55

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

4

3 回答 3

165

怎么样:

<ContextMenu>
    <MenuItem Header="Reports">
        <MenuItem.Icon>
            <Image Source="/XSoftArt.WPFengine;component/Images/export32x32xp.png"/>
        </MenuItem.Icon>
    </MenuItem>
</ContextMenu>
于 2010-06-02T16:34:49.300 回答
53

简单的方法是不使用 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" />可以用 a 替换,<TextBlock Text="Reports" />因为无论如何 ContentPresenter 都会使用它来呈现字符串。对于更复杂Header=的,您可以使用ContentPresenter如图所示的。

于 2009-11-19T14:48:12.630 回答
4

In the case of StackPanel use Label and not the TextBlock since only Label will allow you to have the mnemonics on the menu, like _Reports.

于 2010-07-28T08:02:53.810 回答