Estoy tratando de establecer el icono de mi elemento de menú como este -No se puede establecer icono para el elemento de menú con ItemContainerStyle
<Grid>
<Grid.Resources>
<Image
x:Key="ReportIconImage" Height="20" Width="20"
Source="/Resource/flag.png"/>
<Image
x:Key="ReportIconImage1" Height="20" Width="20"
Source="/Resource/flag.png"/>
</Grid.Resources>
<Menu Height="22" Margin="0,9,0,0" Name="menu1" VerticalAlignment="Top">
<MenuItem Header="Menu">
<MenuItem Header="Save" ></MenuItem>
<MenuItem Header="Open"/>
<MenuItem Header="Exit"/>
<MenuItem.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter
Property="Icon"
Value="{StaticResource ReportIconImage}">
</Setter>
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
<MenuItem Header="Edit">
<MenuItem Header="Undo"/>
<MenuItem Header="Redo"/>
<Separator/>
<MenuItem Header="Cut"/>
<MenuItem Header="Copy"/>
<MenuItem Header="Paste"/>
<MenuItem.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter
Property="Icon"
Value="{StaticResource ReportIconImage1}">
</Setter>
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
</Menu>
</Grid>
pero se muestra el icono por sólo último elemento del menú y no para dos primeros.
aplicación de la muestra - http://weblogs.asp.net/blogs/akjoshi/Samples/WPFMenuItemBugSample.zip
¿Puede cualquier persona proporcionar la razón de este comportamiento y posibles soluciones/soluciones.
Gracias Kent, pero por desgracia tanto las soluciones no funciona. No hay impacto de primero y segundo genera después de la excepción: - No se puede agregar contenido de tipo 'System.Windows.Controls.Image' a un objeto de tipo 'System.Object'. Error en el objeto 'System.Windows.Controls.Image' en el archivo de marcado 'Sample; component/window1.xaml' Line 27 Position 34. – akjoshi
En caso de que ayude, he cargado la aplicación de muestra que reproduce este problema en la pregunta; – akjoshi
@akjoshi: gracias por la reproducción. Cambiar mi proyecto a WPF 4 permite que mi primera sugerencia funcione, por lo que debe haber un error en 3.5. En cuanto a mi segunda sugerencia, eso no funcionará porque WPF está intentando utilizar la misma imagen en todos los artículos de menú, de la manera que describí en mi respuesta. Si hubiera una propiedad 'IconTemplate', la usarías. Desafortunadamente, 'MenuItem' no es lo suficientemente fino como para tener uno, por lo que solo puedo sugerir reemplazar el' Template'. Frustrante por decir lo menos. –