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
(因此淡出不起作用)。所以最后一个关键帧需要是动画时间加上淡出时间?应该是这样,你自己试试看。您甚至可以删除绑定(设置一些直接值)以首先查看它的操作。啊,是的,这似乎就是问题所在。如果你回复,我很乐意接受。谢谢我很高兴它有帮助,但我不会添加答案,因为你看到它有点琐碎。