2010-12-30 16 views
3

Ich möchte, dass das Bild eine Deckkraft von .50 aufweist, wenn IsEnabled auf false gesetzt ist. Ich habe mir mehrere Beispiele angeschaut, aber ich verstehe immer noch nicht, wie ich es zum Laufen bringen kann.WPF XAML Ändern der Bild-Opazität im Status "IsEnabled"

Hier ist der volle XAML meines benutzerdefinierten Steuerelements. Jede Hilfe würde sehr geschätzt werden.

<UserControl 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" 
x:Class="test.StopButtonControl" 
x:Name="UserControl" 
d:DesignWidth="85" d:DesignHeight="85"> 

    <Grid x:Name="LayoutRoot"> 
     <Image x:Name="StopButtonUI" Source="Images/stop.png" Stretch="Fill" MouseUp="StopButtonClick"/> 
    </Grid> 
</UserControl> 

Antwort

16

Sie können Paare die Image ‚s Opacity Eigenschaft auf den IsEnabled Eigenschaft über einen Stil Trigger wie folgt:

<Grid x:Name="LayoutRoot"> 
    <Image x:Name="StopButtonUI" Source="Images/stop.png" > 
     <Image.Style> 
      <Style TargetType="Image"> 
       <Style.Triggers> 
        <Trigger Property="IsEnabled" Value="False"> 
         <Setter Property="Opacity" Value="0.5" /> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </Image.Style> 
    </Image> 
</Grid> 

Dies setzt die Opacity-0,5 wenn IsEnabled falsch ist.

Die Image ‚s IsEnabled Eigenschaft ausgelöst wird, wenn die UserControl seine IsEnabled Eigenschaft hat als Folge der Eigenschaft geändert Vererbung heißt das Bild ein Kind der Benutzersteuerung ist so wird es seine IsEnabled Eigenschaft zu setzen haben.

+0

Vielen Dank, jetzt verstehe ich und ich werde mit anderen Eigenschaften experimentieren. – Nick