禁用的按钮未更改WPF中DataTrigger的颜色



我有以下代码,我试图在禁用按钮时更改该按钮的背景颜色。但是它仍然保持与启用时相同的背景颜色。尽管该按钮确实被禁用,但它没有更改。任何帮助将不胜感激。

 <Button  Content="Install" Command="{Binding InstallCommand}"  Margin="150,30,30,22" Width="118" FontSize="18" FontWeight="Bold" FontFamily="Segoe UI Light" FontStretch="ExtraExpanded">
                <Button.Style>
                    <Style TargetType="Button">
                        <Setter Property="IsEnabled" Value="True" />
                        <Setter Property="OverridesDefaultStyle" Value="True"/>
                        <Setter Property="Foreground" Value="White"/>
                        <Setter Property="Background" Value="#FF4F4F4F"/>
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="Button">
                                    <Border Name="border" 
                        BorderThickness="1"                                  
                        Background="{TemplateBinding Background}">
                                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                                    </Border>
                                    <ControlTemplate.Triggers>
                                        <Trigger Property="IsMouseOver" Value="True">
                                            <Setter TargetName="border" Property="BorderBrush" Value="Black" />
                                            <Setter Property="Foreground" Value="White"/>
                                            <Setter Property="Background" Value="Goldenrod"/>
                                        </Trigger>
                                    </ControlTemplate.Triggers>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding InstallEnabled, Converter={StaticResource BooleanToVisibilityConverter}}" Value="">
                                <Setter Property="IsEnabled" Value="False" />
                                <Setter Property="Background" Value="{DynamicResource windowBGBrushBusinessDateChanged}"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Button.Style>
            </Button>

我发现在您的触发器中您没有检查值。触发触发器如下。

 <Style.Triggers>
      <DataTrigger Binding="{Binding InstallEnabled, Converter={StaticResource BooleanToVisibilityConverter}}" Value="False">
    <Setter Property="IsEnabled" Value="False" />
 <Setter Property="Background" Value="{DynamicResource windowBGBrushBusinessDateChanged}"/>
 </DataTrigger>
</Style.Triggers>

您可以通过更改按下按钮的控制模板来更改禁用按钮背景,

   <Window.Resources>
    <Style x:Key="MyButton2" TargetType="Button">
        <Setter Property="OverridesDefaultStyle" Value="True" />
        <Setter Property="Background" Value="MediumAquamarine" />
        <Setter Property="Foreground" Value="MediumBlue" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Grid Background="{TemplateBinding Background}">
                        <ContentPresenter x:Name="MyContentPresenter"
                                          HorizontalAlignment="Center"
                                          VerticalAlignment="Center"
                                          Content="{TemplateBinding Content}" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Background" Value="Green" />
                <Setter Property="Foreground" Value="DeepPink" />
            </Trigger>
        </Style.Triggers>
    </Style>

</Window.Resources>
<Grid>
    <Button x:Name="disabledButton"
            Width="100"
            Height="100"
            Content="Button State"
            IsEnabled="False"
            Style="{StaticResource MyButton2}" />

</Grid>

相关内容

  • 没有找到相关文章

最新更新