Изменить фон кнопки на IsEnabled, используя смесь выражений - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу изменить цвет фона кнопки и цвет заливки контура в WPF.Значения цвета должны обновляться в зависимости от текущего состояния свойства кнопки IsEnabled.

(я хочу создать темно-серый цвет фона, если кнопка отключена, и обновить цвет заливки контура до светло-серого, если кнопкаотключена, если кнопка включена, цвета фона и заливки должны быть такими, какие они есть в настоящее время)

Я знаю, что это можно сделать с некоторыми конвертерами .... но я мог бы сделать это проще, только используя Blend(состояния и триггеры)?Если да, пожалуйста, дайте мне знать, как?

1 Ответ

0 голосов
/ 20 ноября 2018

Я переопределил стиль по умолчанию и изменил цвет фона на 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>
...