Datatrigger автореверс цвет - PullRequest
       3

Datatrigger автореверс цвет

0 голосов
/ 18 сентября 2018

Я хочу мгновенно изменить цвет фона на красный, если свойство имеет значение true.Затем медленно вернитесь к цвету фона по умолчанию.

Моя первая попытка, проблема: цвет по умолчанию появляется мгновенно и не восстанавливается медленно с течением времени

 <DataTrigger Binding="{Binding HasValueChanged}" Value="True">
            <Setter Property="Background" Value="Red" />
        </DataTrigger>
        <DataTrigger Binding="{Binding HasValueChanged}" Value="False">
            <DataTrigger.EnterActions>
                <BeginStoryboard>
                    <Storyboard>
                        <ColorAnimation  Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" Duration="0:0:5" />
                    </Storyboard>
                </BeginStoryboard>
            </DataTrigger.EnterActions>
        </DataTrigger>

Моя вторая попытка, проблема: цвет меняется, как этодолжен, но никогда не станет красным, если свойство остается истинным

<DataTrigger Binding="{Binding HasValueChanged}" Value="True">
                <DataTrigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation To="Red" AutoReverse="True"  Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" Duration="0:0:5" />
                        </Storyboard>
                    </BeginStoryboard>
                </DataTrigger.EnterActions>
            </DataTrigger>

1 Ответ

0 голосов
/ 18 сентября 2018

Пока вы не установите FillBehavior Временной шкалы на Stop, она будет удерживать окончательное значение свойства, пока оно не будет заменено другой Временной шкалой.

Так что это работает:

<DataTrigger Binding="{Binding HasValueChanged}" Value="True">
    <DataTrigger.EnterActions>
        <BeginStoryboard>
            <Storyboard>
                <ColorAnimation Storyboard.TargetProperty="Background.Color"
                                To="Red" Duration="0"/>
            </Storyboard>
        </BeginStoryboard>
    </DataTrigger.EnterActions>
    <DataTrigger.ExitActions>
        <BeginStoryboard>
            <Storyboard>
                <ColorAnimation Storyboard.TargetProperty="Background.Color"
                                From="Red" Duration="0:0:1"/>
            </Storyboard>
        </BeginStoryboard>
    </DataTrigger.ExitActions>
</DataTrigger>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...