У меня есть код, который меняет цвет кнопки на желтый при нажатии, проблема не возвращается к исходному цвету, когда я отпускаю, какое решение?

<Button Content="0" FontSize="28" FontWeight="Bold" Height="53" HorizontalAlignment="Left" Margin="67,51,0,0" Name="button10" VerticalAlignment="Top" Width="63" Grid.Column="9" Grid.Row="5" Grid.ColumnSpan="3" Grid.RowSpan="2">
        <Button.Style>
            <Style TargetType="Button">
                <Style.Triggers>
                    <Trigger Property="IsPressed" Value="True">
                        <Trigger.EnterActions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="Yellow"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </Trigger.EnterActions>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>
1
Jorge 14 Апр 2016 в 21:45

2 ответа

Лучший ответ

Если вы на самом деле не делаете никакой анимации, вы можете обойтись без раскадровки:

<Style TargetType="Button">
    <Style.Triggers>
        <Trigger Property="IsPressed" Value="True">
            <Setter Property="Background" Value="Yellow" />
         </Trigger>
     </Style.Triggers>
 </Style>

Когда условие больше не выполняется, он вернется к прежнему цвету фона. Но это работает только в том случае, если существующий цвет фона установлен с помощью средства настройки стиля - если вы поместите атрибут Background="Purple" на кнопку, стиль не сможет коснуться цвета фона.

2
15ee8f99-57ff-4f92-890c-b56153 14 Апр 2016 в 21:07

Как насчет

<Trigger Property="IsPressed" Value="False">
                    <Trigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" To="OriginalColor"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </Trigger.EnterActions>
                </Trigger>
0
Ricardo Olivo Poletti 14 Апр 2016 в 19:18