zhouqijie

样式化XAML应用程序

动画

在动画中,可以使用移动的元素、颜色变化、变换等制作平滑的变换效果。

Timeline定义了值随时间的变化方式。

有不同类型的时间轴,可用于改变不同类型的值。所有时间轴基类都是Timeline。连续改变double值可以用DoubleAnimation类。改变int值可以用Int32Animation,连续改变点可以用<PointAnimation>,连续改变颜色可用ColorAnimation

Storyboard类可以用于合并时间轴,它派生自TimelineGroup基类,而TimelineGroup派生自Timeline

<EventTrigger>
    <BeginStoryboard>
        <Storyboard x:Name="xxx">
            <DoubleAnimation Duration="0:0:10" To="5"
                Storyboard.TargetName="ellipse1" 
                Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleX)" />
        </Storyboard>       
    </BeginStoryboard>    
</EventTrigger>     
Timeline属性 说明
AutoReverse 指定连续改变的值在动画结束后是否返回初始值
SpeedRatio 改变动画的移动速度
BeginTime 指定从触发器事件开始到动画开始之间的时间长度
Duration 动画重复一次的时长
RepeatBehavior 定义动画的重复次数或时间
FillBehavior 如果父元素的时间轴有不同的持续时间,该属性就很重要

动画类有EasingFuntion属性。这个属性接受一个实现了IEasingFuntion的对象。通过这个类型,缓动函数对象可以定义值如何随时间变化。

<DoubleAnimation xx="xx">
    <DoubleAnimation.EasingFuntion>
        <BounceEase EasingMode="EaseInOut" />
    </DoubleAnimation.EasingFuntion>
</DoubleAnimation>

如果需要为动画指定几个值,可以使用关键帧动画。

DoubleAnimationUsingKeyFrames是double类型的关键帧动画。其他的有Int32AnimationUsingKeyFramesPointAnimationUsingKeyFrames以及ObjectAniamtionUsingKeyFrames等。

(END)