2010-05-14 9 views
11

Estoy tratando de mostrar una imagen diferente cuando el botón está desactivado; Pensé que sería fácil con los factores desencadenantes.¿Cómo cambio la imagen cuando el botón está desactivado?

Sin embargo, no he podido hacer que la fuente de la imagen cambie a la imagen desactivada cuando el botón está desactivado. Intenté configurar activadores tanto en la imagen como en el botón. ¿Qué pasa con lo que tengo a continuación? ¿Cómo puedo cambiar la fuente de la imagen cuando el botón está habilitado/deshabilitado?

<Button 
     x:Name="btnName" 
     Command="{Binding Path=Operation}" 
     CommandParameter="{x:Static vm:Ops.OpA}"> 
      <Button.Content> 
       <StackPanel> 
        <Image 
        Width="24" 
        Height="24"    
        RenderOptions.BitmapScalingMode="NearestNeighbor" 
        SnapsToDevicePixels="True" 
        Source="/MyAssembly;component/images/enabled.png"> 
         <Image.Style> 
          <Style> 
           <Style.Triggers> 
            <DataTrigger Binding="{Binding ElementName=btnName, Path=Button.IsEnabled}" Value="False"> 
             <Setter Property="Image.Source" Value="/MyAssembly;component/images/disabled.png" /> 
            </DataTrigger> 
           </Style.Triggers> 
          </Style> 
         </Image.Style> 
        </Image> 
       </StackPanel> 
      </Button.Content> 
     </Button> 

Respuesta

23

Sí, este aparece un poco.

Cualquier propiedad que se establezca explícitamente en la declaración del objeto no se puede cambiar en un estilo. Entonces, como ha configurado la propiedad Fuente de la imagen en la declaración de la imagen, el Organizador del estilo no la tocará.

probar este lugar:

<Image 
    Width="24" 
    Height="24"    
    RenderOptions.BitmapScalingMode="NearestNeighbor" 
    SnapsToDevicePixels="True" 
    > 
    <Image.Style> 
     <Style TargetType="Image"> 
      <Setter Property="Source" 
        Value="/MyAssembly;component/images/enabled.png" /> 
      <Style.Triggers> 
       ... your trigger and setter ... 
      </Style.Triggers> 
     </Style> 
    </Image.Style> 
</Image> 
+0

Voy a dar que un prueba- Gracias por la respuesta rápida, además de la explicación y el ejemplo! –

Cuestiones relacionadas