2010-05-14 13 views
11

Ich versuche, ein anderes Bild zu zeigen, wenn die Schaltfläche deaktiviert ist; Ich dachte, es wäre einfach mit Triggern.Wie ändere ich das Bild, wenn die Schaltfläche deaktiviert ist?

Ich konnte jedoch nicht die Bildquelle auf das deaktivierte Bild wechseln, wenn die Schaltfläche deaktiviert ist. Ich habe versucht, Trigger sowohl für das Bild als auch für die Schaltfläche festzulegen. Was stimmt nicht mit dem, was ich unten habe? Wie kann ich die Bildquelle ändern, wenn die Schaltfläche aktiviert/deaktiviert ist?

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

Antwort

23

Ja, dieser eine Pop-up erscheint ziemlich viel.

Jede Eigenschaft, die explizit in der Deklaration des Objekts angegeben wird, kann nicht in einem Stil geändert werden. Da Sie die Eigenschaft Source des Bildes in der Deklaration des Bildes festgelegt haben, wird der Setter des Styles diese nicht berühren.

Versuchen Sie stattdessen:

<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

ich, dass ein TRY Dank für die schnelle Antwort geben werden, sowie die Erklärung und Beispiel! –

Verwandte Themen