如果需要创建具有多个分段的动画和不规则移动的动画,这个时候可以使用关 键帧动画。关键帧动画是由许多较短的段构成的动画,每段表示动画的初始 值、最终值或中间值。当运行动画时,她平滑地从一个值移动到另一个值。关 键帧对象基本上都有Value属性和KeyTime属性。和其他普通动画不同的是 Value属性的数据类型,在LinearPointKeyFrame类中是Point类型,在 DoubleKeyFrame类中是double类型。
例:
<Window.Triggers>
<EventTrigger RoutedEvent="Window.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<!--椭圆焦点 (GradientOrigin)-->
<Storyboard Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="Fill.GradientOrigin">
<!--PointAnimationUsingKeyFrames:使用关键帧的点动画-->
<PointAnimationUsingKeyFrames>
<!--LinearPointKeyFrame:使用线性插值点关键帧对象,从上一个关键帧的点值动画到当前关键帧的值。-->
<!--关键帧动画:包含一个保存目标值的 Value 属性和一个指示帧何时到达目标值的 KeyTime 属性-->
<LinearPointKeyFrame Value="0.7,0.3" KeyTime="0:0:0"/>
<LinearPointKeyFrame Value="0.3,0.7" KeyTime="0:0:3"/>
<LinearPointKeyFrame Value="0.5,0.2" KeyTime="0:0:5"/>
<LinearPointKeyFrame Value="0.7,0.3" KeyTime="0:0:7"/>
</PointAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Window.Triggers>
<!--网格布局-->
<Grid>
<!--椭圆绘图-->
<Ellipse Width="200" Height="200" Name="ellipse1">
<!--填充色径向渐变-->
<Ellipse.Fill>
<RadialGradientBrush>
<RadialGradientBrush.GradientStops>
<GradientStop Offset="0.3" Color="Red"/>
<GradientStop Offset="0.6" Color="Yellow"/>
<GradientStop Offset="0.9" Color="Green"/>
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
</Grid>