WPF - 根据 IsEnabled 属性更改按钮背景的样式

问题描述 投票:0回答:1
wpf styles
1个回答
0
投票

您只需要在

Trigger
属性上设置一个普通的
IsEnabled
即可设置按钮的
Background
。 ControlTemplate 中的 Grid 和 Rectangle 是多余的。

<SolidColorBrush x:Key="BackgroundEnabled" Color="#FFADD2CC"/>
<SolidColorBrush x:Key="BackgroundDisabled" Color="#FF8D9B98"/>

<Style x:Key="ButtonStyle" TargetType="Button">
    ...
    <Setter Property="Background" Value="{StaticResource BackgroundEnabled}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border Background="{TemplateBinding Background}">
                    <ContentPresenter
                        Margin="{TemplateBinding Padding}"
                        HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                        VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsEnabled" Value="False">
                        <Setter Property="Background"
                                Value="{StaticResource BackgroundDisabled}"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
© www.soinside.com 2019 - 2024. All rights reserved.