WPF XAML Änderung der Bildunterführung im isenabled Status
-
14-10-2019 - |
Frage
Ich möchte das Bild haben, um eine Deckkraft von 0,50 zu haben, wenn die Isenabalen falsch sind. Ich habe mir mehrere Beispiele angesehen, aber ich kann immer noch nicht verstehen, wie es funktioniert.
Hier ist das vollständige XAML meiner benutzerdefinierten Kontrolle. Jede Hilfe wäre zutiefst geschätzt.
<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>
Lösung
Sie können das koppeln Image
's Opacity
Eigentum zu seinem IsEnabled
Eigenschaft über einen Stilauslöser 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>
Dadurch wird die festgelegt Opacity
bis 0,5 wann IsEnabled
ist falsch.
Das Image
's IsEnabled
Eigenschaft wird ausgelöst, wenn die UserControl
hat seine IsEnabled
Die Eigenschaft verändert sich infolge der Eigentumserbschaft, dh das Bild ist ein Kind der Benutzerkontrolle, sodass es seine hat IsEnabled
Eigenschaft auch eingestellt.