2009-09-29 9 views
6

Hola Estoy tratando de tener un MenuItem.Icon establecer a través de un regulador de estilo:No se puede establecer a través de un regulador de System.Windows.Controls.MenuItem.Icon

<Style x:Key="MenuItem_Delete" TargetType="MenuItem" 
     BasedOn="{StaticResource {x:Type MenuItem}}"> 
    <Setter Property="Header" Value="_Delete"/> 
    <Setter Property="MenuItem.Icon"> 
     <Setter.Value> 
      <Image Source="Resources/Delete.png"/> 
     </Setter.Value> 
    </Setter> 
</Style> 

Me da la siguiente excepción en tiempo de ejecución: No se puede agregar contenido del 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 'WpfApplication1; componente/application.xaml' Línea 164 Posición 26.

En el otro lado, este es el ejemplo en el siguiente enlace:

<MenuItem Header="New"> 
    <MenuItem.Icon> 
    <Image Source="data/cat.png"/> 
    </MenuItem.Icon> 
</MenuItem> 

Gracias.

Respuesta

1

que estaba buscando desesperadamente la web para una respuesta y creo que esto es un error de WPF.

Lo indiqué @Microsoft Connect, vote y valide o comparta sus ideas con Microsoft si tiene alguna.

actualización
This correos me ha ayudado mucho.

1

Me he encontrado con el mismo problema. Encontré el mismo error en otro hilo http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/81a106dd-4d06-4506-820a-30fe96a39112. Según su solución, puede probar este. Pero el enlace se ejecuta solo para el último elemento en la colección MenuItem. ¡Es muy malo!

<Style x:Key="MenuItem_Delete" TargetType="MenuItem" 
    BasedOn="{StaticResource {x:Type MenuItem}}"> 
    <Style.Resources> 
     <Image x:key="DeleteIcon" Source="Resources/Delete.png"/> 
    </Style.Resources> 
    <Setter Property="Header" Value="_Delete"/> 
    <Setter Property="MenuItem.Icon" Value="{DynamicResource DeleteIcon}" /> 
</Style> 

¿Hay alguna actualización? ¡Gracias!

+0

Parece que no funciona. – Shimmy

0

El siguiente código resolverá este problema.

<Style x:Key="StyleNewContext" TargetType="MenuItem"> 
    <Style.Resources> 
     <Image x:Key="ImageNewContext" Source="{StaticResource ImageSourceNewContext}" /> 
     <Image x:Key="ImageNewContextDisabled" Source="{StaticResource ImageSourceNewContextDisabled}" /> 
    </Style.Resources> 
    <Setter Property="Icon" Value="{DynamicResource ImageNewContext}" /> 
    <Style.Triggers> 
     <Trigger Property="IsEnabled" Value="False"> 
      <Setter Property="Icon" Value="{DynamicResource ImageNewContextDisabled}" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

Saludos, Peter

+1

Eso no es lo que pregunté, pero de todos modos no funciona. – Shimmy

Cuestiones relacionadas