1、动态变换。
变换提供了自定义元素的最强大方式之一。每个元素都能以两种不同的方式使用变换,RenderTransform属性和LayoutTransform属性。RenderTransform属性效率更高。因为是在布局之后应用变换,并且用于变换最终的渲染输出。LayoutTransform在布局前应用,从而其他控件需要重新排列以适应变换。
(1)、使用 变形(RenderTransform)类:
RenderTransformOrigin:渲染动画的起点(控制动画起点)取值为一个坐标的形式 取值范围: 0,0 到 1,1 、 0,0:表示左上角,如此设置后动画会以左上角为基准点开始;0.5,0.5:表示中心;
使用RotateTransform时,一定要使用TransformGroup,否则不能进行动画
RotateTransform:能够让某对象产生旋转变化,根据中心点进行顺时针旋转或逆时针旋转。
(2)、使用LayOutTransform:
对象中心点用来定义所有RenderTransform变换中相对位置的的参考点,默认为图形的左上即(0,0),该属性值为相对值,介于 0 和 1 之间的值被解释为每对 x,y 轴中的当前元素的范围的因素
LayoutTransform属性以相同的方式变换元素
RepeatBehavior:使用RepeataBehavior属性可以控制如何重复运行动画,Forever设置为永久重复
2、动态改变多个变换。
就是在TransformGroup中放置多个变换类。
TimeLine类的常用属性:BeginTime设置将被添加到动画开始之前的延时时间(TimeSpan类型),ScaleTransform:能够让某对象产生缩放变化。
3、动态改变画刷。
使用ColorAnimation改变颜色,使用PointAnimatin改变坐标。
设置Fill.GradientOrigin属性。
线性渐变有一个起点和一个终点用于定义渐变矢量,而径向渐变有一个椭圆以及一个焦点
(GradientOrigin) 用于定义渐变行为。该椭圆定义渐变的终点。
4、动态改变像素着色器。
BlurEffect模糊效果:通过设置BlurEffect的Radius属性可以设置模糊度
5、关键帧动画。
如果需要创建具有多个分段的动画和不规则移动的动画,这个时候可以使用关键帧动画关键帧动画是由许多较短的段构成的动画,每段表示动画的初始值、最终值或中间值。当运行动画时,她平滑地从一个值移动到另一个值。关键帧对象基本上都有Value属性和KeyTime属性。和其他普通动画不同的是Value属性的数据类型,在LinearPointKeyFrame类中是Point类型,在
DoubleKeyFrame类中是double类型。
PointAnimationUsingKeyFrames:使用关键帧的点动画
LinearPointKeyFrame:使用线性插值点关键帧对象,从上一个关键帧的点值动画到当前关键帧的值。
关键帧动画:包含一个保存目标值的 Value 属性和一个指示帧何时到达目标值的 KeyTime 属性
6、离散的关键帧动画。
使用的是线性关键帧动画,所以,它在关键帧动画之间平滑地过度。另一种选择是使用离散关键帧,离散关键帧不是进行插值,当到达关键时间时,属性突然改变为新值。线性关键帧类通常使用"Linear"+数据类型+KeyFrame"的形式进行命名,离散关键帧类使用"Discrete数据类型+KeyFrame"的形式命名。当运行这个动画时中心点会在适当的时间从一个位置跳转到下一个位置。所有关键帧动画类都支持离散关键帧,但只有一部分关键动画类支持线性关键帧。
DiscretePointKeyFrame:使用离散点关键帧对象
7、缓动关键帧。
由离散关键帧可以得出:尽管关键帧动画被分割成多段,但每段仍使用普通的线性插值。常用的缓动关键帧类有:EasingDoubleKeyFrame、EasingColorKeyFrame、EasyingPointKeyFrame。每个缓动关键帧类和对应的线性插值关键帧类的工作方式相同,但是额外提供了EasyingFunction属性。
8、关键帧动画。
ArcSegment类 :表示两点之间的一条椭圆弧。
Size代表圆弧的X,Y轴半径,例子中Size="55,20"表示X半径为55,Y轴半径为20的椭圆。
SweepDirection获取或设置一个值,该值指定是以 Clockwise[指定按顺时针(正
角)方向绘制圆弧。] 方向 还是以 Counterclockwise [指定按逆时针(负角)方向绘制圆弧。]方向绘制弧
Geometry对象并不能作为图像独立呈现出来,因此需要呈现方式:这里是在GeometryDrawing中呈现 ;可以作为GeometryDrawing.Geometry的参数呈现为
Drawing对象
9、基于帧的动画。
使用帧的动画要为静态的CompositionTarger.Rendering事件关联事件处理程序,一旦关 联这个处理程序,WPF就开始不断地调用这个事件处理程序,WPF将每秒调用60次。当动画结束后,分离事件处理程序。