带图像的 WPF 菜单项

问题描述 投票:0回答:4

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

wpf image menu menuitem
4个回答
170
投票

大致如下:

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

54
投票

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


4
投票

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


0
投票

这对我有用:

<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

© www.soinside.com 2019 - 2024. All rights reserved.