WPF - 默认按钮禁用样式时应用前景

San*_*ann 5 wpf

按钮Foreground在启用时应用.如果设置为已禁用,则Foreground需要应用默认按钮的禁用.

<Button Width="150"
        Height="50"
        Content="Test"
        Foreground="Red"
        IsEnabled="False" />
Run Code Online (Sandbox Code Playgroud)

我有这个按钮的触发器

<Trigger Property="IsEnabled" Value="false">
    <Setter Property="Foreground" Value="#FFADADAD"/>
</Trigger>
Run Code Online (Sandbox Code Playgroud)

Foreground启用时不会应用此选项.

有什么想法吗?

需要如下,

在此输入图像描述

在此输入图像描述

Moh*_*med 11

如果在本地设置属性,则触发器将无法更改由于优先级而导致的值.

将Foreground和IsEnabled属性移动到样式中:

<StackPanel>
<StackPanel.Resources>
    <Style TargetType="{x:Type Button}">
        <Setter Property="Foreground" Value="Red"/>
        <Setter Property="IsEnabled" Value="True"/>
        <Style.Triggers>
            <Trigger Property="IsEnabled" Value="false">
                <Setter Property="Foreground" Value="#FFADADAD"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</StackPanel.Resources>
<Button Width="150" 
    Height="50"
    Content="Test">
</Button>
Run Code Online (Sandbox Code Playgroud)