51 votes

Élément de menu WPF avec image

    <Menu Height="22" Margin="0,109,102,0" Name="menu1" VerticalAlignment="Top">
        <MenuItem Header="Reports">
            <MenuItem.Icon>
                <Image Width="20" Height="20" Source="/XSoftArt.WPFengine;component/Images/export32x32xp.png" />
            </MenuItem.Icon>
        </MenuItem>
        <MenuItem Header="Export" />
        <MenuItem Header="New record" />
    </Menu>
 

Comment définir MenuItem.Icon pour que le texte MenuItemHeader soit placé sous l'image de l'élément de menu? Merci pour l'aide!

149voto

DanielE Points 257

Comment quelque chose dans le sens de:

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

49voto

Ray Burns Points 38537

Le moyen le plus simple est de ne pas utiliser la propriété Icon mais de mettre l’icône dans l’en-tête:

 <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>
 

Pour ce cas simple, les <ContentPresenter Content="Reports" /> peuvent être remplacés par un <TextBlock Text="Reports" /> car c’est ce que ContentPresenter utiliserait quand même pour présenter la chaîne. Pour les Header= plus complexes, vous pouvez utiliser les ContentPresenter indiqués.

3voto

tridy Points 11

Dans le cas de StackPanel, utilisez Label et non le TextBlock car seul Label vous permettra d’avoir les mnémoniques dans le menu, comme _Reports .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X