C# 动画绑定关键帧时间不工作
我目前正在尝试使C# 动画绑定关键帧时间不工作,c#,wpf,animation,data-binding,C#,Wpf,Animation,Data Binding,我目前正在尝试使TextBlock在Text属性更改时淡入淡出。我有这个XAML: <TextBlock DataContext="{Binding ElementName=main, Path=DataContext}" Height="18" Text="{Binding CurrentStatus, NotifyOnTargetUpdated=True}"> <TextBlock.Triggers> <E
TextBlock
在Text
属性更改时淡入淡出。我有这个XAML:
<TextBlock DataContext="{Binding ElementName=main, Path=DataContext}"
Height="18"
Text="{Binding CurrentStatus, NotifyOnTargetUpdated=True}">
<TextBlock.Triggers>
<EventTrigger RoutedEvent="Binding.TargetUpdated">
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:0:1" Value="1"/>
<EasingDoubleKeyFrame KeyTime="{Binding AnimationTime}" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:0:1" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</TextBlock.Triggers>
</TextBlock>
除此之外,我想做的是:首先,花1秒时间淡入,然后在AnimationTime
期间保持Opacity
1,然后花1秒时间淡出。我已经用Snoop检查了AnimationTime
的值,该值很好。但是动画似乎忽略了边界值,淡出也不起作用。所以现在,它像预期的那样消失了,但随后立即消失了。文本也仍然存在。有人看到代码有什么问题吗
编辑:
AnimationTime
是一个TimeSpan
btw
这是最后一个关键帧,它的关键时间与第二个关键帧完全相同。这是打字错误吗?我认为当关键帧接近1
时,它将强制不透明度变为0
(因此淡出不起作用)。所以最后一个关键帧需要是动画时间加上淡出时间?应该是这样,你自己试试看。您甚至可以删除绑定(设置一些直接值)以首先查看它的操作。啊,是的,这似乎就是问题所在。如果你回复,我很乐意接受。谢谢我很高兴它有帮助,但我不会添加答案,因为您看到它有点琐碎。
这是最后一个关键帧,它的关键时间与第二个关键帧完全相同。这是打字错误吗?我认为当关键帧接近1
时,它将强制不透明度变为0
(因此淡出不起作用)。所以最后一个关键帧需要是动画时间加上淡出时间?应该是这样,你自己试试看。您甚至可以删除绑定(设置一些直接值)以首先查看它的操作。啊,是的,这似乎就是问题所在。如果你回复,我很乐意接受。谢谢我很高兴它有帮助,但我不会添加答案,因为你看到它有点琐碎。