当IsEnabled为false时,我希望图像的不透明度为.50。我一直在研究多个例子,但我仍然无法掌握如何使其发挥作用。
以下是我的自定义控件的完整XAML。任何帮助都将深表感谢。
<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>
答案 0 :(得分:18)
您可以通过样式触发器将Image
的{{1}}属性与其Opacity
属性耦合,如下所示:
IsEnabled
当<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>
为false时,这会将Opacity
设置为0.5。
当IsEnabled
由于属性继承而更改Image
属性时,IsEnabled
的{{1}}属性将被触发,即图像是用户控件,因此它也会设置UserControl
属性。