gpt4 book ai didi

c# - WPF 文本 block 颜色动画

转载 作者:行者123 更新时间:2023-11-30 15:07:26 27 4
gpt4 key购买 nike

我对 WPF 动画完全陌生,目前我遇到了很大的问题。

我有一个 TextBlock,只要我的 View 模型的属性具有特定值,我就想对其背景颜色运行 ColorAnimation。当我的属性值发生变化时,我希望我的 TextBlock 的背景颜色恢复到原来的颜色(可能是透明的)。这是我到目前为止的发现,但它仍然没有像我描述的那样工作。

<TextBlock Text="{Binding DatabaseTasks.Count, StringFormat= 'Count: {0}'}" VerticalAlignment="Center" Background="Transparent">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding IsIdle}" Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard Storyboard.TargetProperty="(TextBlock.Background).(SolidColorBrush.Color)">
<ColorAnimation RepeatBehavior="Forever"
FillBehavior="Stop"
From="Red"
To="Transparent"
By="Blue"
Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>

有人可以解决这个问题吗?

提前致谢!

编辑:绑定(bind)工作正常,我使用仅更改背景颜色的简单 DataTrigger 对其进行了测试。我的问题是动画不会停止并返回到原始颜色。我确定我错过了什么。

最佳答案

添加 RemoveStoryboard 标签即可。

<Style TargetType="TextBlock">                            
<Style.Triggers>
<DataTrigger Binding="{Binding IsIdle}" Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="tt" >
<Storyboard Storyboard.TargetProperty="(TextBlock.Background).(SolidColorBrush.Color)">
<ColorAnimation RepeatBehavior="Forever"
FillBehavior="Stop"
From="Red"
To="Transparent"
By="Blue"
Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="tt"></RemoveStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>

关于c# - WPF 文本 block 颜色动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6593747/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com