Datatrigger自动反色

问题描述 投票:0回答:1

如果属性为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>
c# wpf datatrigger wpf-style
1个回答
0
投票

只要你没有将时间轴的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>
© www.soinside.com 2019 - 2024. All rights reserved.