如何开始动画,等待' X'几秒然后撤消动画?

时间:2017-11-20 11:41:26

标签: wpf wpf-animation

我有一个动画,当我有一个我想要显示给用户的错误时会将文本块关闭。目前,它在0.5秒内降低。有没有办法在0.5秒内将其降下来,保持10秒钟,然后在0.5秒内隐藏它?我找到了自动反转属性,它负责开始和结束,但我没有找到一种方法来保持文本块显示指定的时间段。任何帮助将不胜感激!

<Window.Resources>
    <Storyboard x:Key="MessageSlide" AutoReverse="True">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" Storyboard.TargetName="textBlock">
            <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="50"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
</Window.Resources>
<Window.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
        <BeginStoryboard Storyboard="{StaticResource MessageSlide}"/>
    </EventTrigger>
</Window.Triggers>

1 个答案:

答案 0 :(得分:1)

添加另一个只保存值的KeyFrame:

<DoubleAnimationUsingKeyFrames ... AutoReverse="True">
    <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="50"/>
    <DiscreteDoubleKeyFrame KeyTime="0:0:5.5" Value="50"/>
</DoubleAnimationUsingKeyFrames>

您也可以设置动画的持续时间:

<DoubleAnimationUsingKeyFrames ... Duration="0:0:5.5" AutoReverse="True">
    <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="50"/>
</DoubleAnimationUsingKeyFrames>