Подтвердить что ты не робот

Элемент меню WPF с изображением

                                                                                                   

Как определить MenuItem.Icon, чтобы текст MenuItemHeader был помещен ниже изображения элемента меню? Спасибо за помощь!

4b9b3361

Ответ 1

Самый простой способ - не использовать свойство 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

Как что-то вроде:

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

Ответ 3

В случае StackPanel используйте Label, а не TextBlock, так как только Label позволит вам иметь мнемонику в меню, например _Reports.