我完全是WPF动画的新手,目前我面临着很大的问题。WPF TextBlock ColorAnimation
我有一个TextBlock
其中,只要我的视图模型的属性具有特定的值,我想运行一个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>
有人能解决这个问题吗?
预先感谢您!
编辑: 的结合作品就好了,我用一个简单的DataTrigger,只是改变了背景色进行了测试。我的问题是动画不停止并返回原始颜色。我相信我错过了一些东西。
我测试了你的数据触发器,它对我很有用。最有可能你绑定部分有问题。如果有关于绑定错误的信息,您可以在调试代码时检查输出窗口。像:System.Windows.Data错误:40:BindingExpression路径错误:在'对象'''Test'(HashCode = 35326503)'找不到'IsIdle'属性。 BindingExpression:路径= IsIdle; DataItem ='Test'(HashCode = 35326503);目标元素是'TextBlock'(Name ='Foo');目标属性是'NoTarget'(输入'Object') –
@YiğitYener感谢您的回放。绑定工作正常。我的输出窗口没有错误。对我来说,即使值发生变化,动画也会继续。 – Dummy01
好的。我得到了它的工作。您必须在其中添加部分和 RemoveStoryboard>标记。 sbBegin是您的BeginStoryboard的名字。 –