elemento de menú WPF con la imagen
Cómo definir MenuItem.Icon para que el texto MenuItemHeader se colocó la imagen del menú de abajo? Gracias por la ayuda!
elemento de menú WPF con la imagen
Cómo definir MenuItem.Icon para que el texto MenuItemHeader se colocó la imagen del menú de abajo? Gracias por la ayuda!
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.
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>
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.
Muy buena respuesta, el ejemplo funciona bien ;-). – Vytas
La respuesta a continuación es más fácil y utiliza la propiedad Icon? –
@ 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. –