使用表达式混合更改 IsEnabled 上的按钮背景

Change button Background on IsEnabled using expression blend

我想在 WPF 中更改按钮的背景颜色和路径的填充颜色。颜色值应根据按钮的 IsEnabled 属性.

的当前状态更新

(如果按钮被禁用,我想创建一个深灰色背景颜色,如果按钮被禁用,我想将路径的填充颜色更新为浅灰色,如果按钮被启用,背景和填充颜色应该是它们的颜色目前是)

我知道这可以通过一些转换器来完成....但我是否可以仅通过使用 Blend(状态和触发器)更轻松地做到这一点?如果可以,请告诉我怎么做?

我已经覆盖了默认样式并将背景颜色更改为DarkGray你有没有问过使用触发器。其余的我使用 TemplateBinding

保持相同的按钮样式
<Button x:Name="Button1" Content="Login" HorizontalAlignment="Left"  Height="31"  Margin="10,41,0,-41" Grid.Row="1"  VerticalAlignment="Top" Width="129" Click="Button_Click_1">
        <Button.Style>
            <Style TargetType="Button">
                <Style.Triggers>
                    <Trigger Property="IsEnabled" Value="False">
                        <Setter Property="OverridesDefaultStyle" Value="True" />
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="{x:Type Button}">
                                    <Grid Background="{TemplateBinding Background}">
                                        <ContentPresenter x:Name="MyContentPresenter" 
                                                          Content="{TemplateBinding Content}"
                                                          HorizontalAlignment="Center" 
                                                          VerticalAlignment="Center" />
                                    </Grid>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>

                        <Setter Property="Background" Value="DarkGray"></Setter>
                </Trigger>
                <Trigger Property="IsEnabled" Value="True">
                        <Setter Property="Background" Value="#FFDDDDDD"></Setter>
                </Trigger>

            </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>