1

鉴于我的动画scene1。如何使用C# code后面的“跳过”按钮暂停它,然后播放另一个动画scene2

<Window.Resources>
    <Storyboard x:Key="scene1">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="whitebox">
            <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
            <EasingDoubleKeyFrame KeyTime="0:0:1.7" Value="0"/>
        </DoubleAnimationUsingKeyFrames>
        <StringAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Text)" Storyboard.TargetName="charName">
            <DiscreteStringKeyFrame KeyTime="0:0:2" Value="Teacher"/>
            <DiscreteStringKeyFrame KeyTime="0:0:7.8" Value="Teacher"/>
            <DiscreteStringKeyFrame KeyTime="0:0:8" Value="Teacher"/>
        </StringAnimationUsingKeyFrames>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.HorizontalAlignment)" Storyboard.TargetName="charName">
            <DiscreteObjectKeyFrame KeyTime="0:0:2" Value="{x:Static HorizontalAlignment.Left}"/>
            <DiscreteObjectKeyFrame KeyTime="0:0:7.8" Value="{x:Static HorizontalAlignment.Left}"/>
            <DiscreteObjectKeyFrame KeyTime="0:0:8" Value="{x:Static HorizontalAlignment.Left}"/>
        </ObjectAnimationUsingKeyFrames>
        <ObjectAnimationUsingKeyFrames
        (too long… etc.)
4

2 回答 2

2

在后面的代码中,使用 this.Resources["scene1"] 获取 Storyboard 对象。

Storyboard storyBoard = this.Resources["scene1"] as Storyboard;
storyBoard.Begin();

故事板完成后,使用故事板“已完成”事件启动另一个动画

storyBoard.Completed += eventHandler

称呼

storyBoard.Stop()

停止动画。

于 2012-06-27T06:09:38.017 回答
1

除了 Jeric Paul Calderon 的回答,还有暂停功能:storyBoard.Pause()
主要是Pause()在当前播放位置暂停动画,并Stop()确实停止并返回到起点。

于 2012-06-27T08:42:26.920 回答