【问题标题】:WPF XAML Changing Image opacity on IsEnabled stateWPF XAML 在 IsEnabled 状态下更改图像不透明度
【发布时间】:2011-06-01 17:12:51
【问题描述】:

当 IsEnabled 为 false 时,我希望图像的不透明度为 0.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>

【问题讨论】:

    标签: wpf xaml user-controls opacity isenabled


    【解决方案1】:

    您可以通过样式触发器将Image 的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>
    

    当IsEnabled 为假时,这会将Opacity 设置为0.5。

    Image 的IsEnabled 属性将在UserControl 的IsEnabled 属性因属性继承而发生变化时触发,即图像是用户控件的子控件,因此它将具有其@ 987654331@属性也设置了。

    【讨论】:

    • 非常感谢,现在我明白了,我将尝试其他属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 2012-02-22
    • 2012-09-18
    相关资源
    最近更新 更多