2009-11-19 9 views

Respuesta

45

La manera fácil manera es no utilizar la propiedad Icon pero a su lugar poner el icono en la cabecera:

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

Para este caso sencillo la <ContentPresenter Content="Reports" /> puede ser reemplazado con un <TextBlock Text="Reports" /> porque eso es lo usaría ContentPresenter para presentar la cadena de todos modos. Para más complejo Header=, puede usar ContentPresenter como se muestra.

+0

Muy buena respuesta, el ejemplo funciona bien ;-). – Vytas

+13

La respuesta a continuación es más fácil y utiliza la propiedad Icon? –

+4

@ AlexHopeO'Connor la respuesta a continuación también es incorrecta, si leyeras la pregunta que el OP hizo en el texto y no en el título. Adicional, podría haber notado que la respuesta a continuación no es diferente del código proporcionado por el OP. Él claramente preguntó cómo mostrar el texto debajo de la imagen y no que la imagen está al lado, A CONTINUACIÓN. Es por eso que esta respuesta establece un stackpanel dentro del encabezado con su orientación predeterminada de vertical. –

99

Cómo algo en la línea de:

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

Esto debería ser aceptado como respuesta. – Boy

+0

Esta es la respuesta correcta, ¡gracias! La solución proporcionada por Ray Burns dibuja la imagen en la posición incorrecta. – Mar

+0

Estoy de acuerdo. :) Bien hecho. –

2

En el caso de StackPanel uso de etiquetas y no TextBlock ya que sólo Etiqueta le permitirá tener la nemotécnica en el menú, como _Informes.

Cuestiones relacionadas