一、动态变换。
变换提供了自定义元素的最强大方式之一。每个元素都能以两种不同的方式使用变换,RenderTransform属性和LayoutTransform属性。RenderTransform属性效 率更高。因为是在布局之后应用变换,并且用于变换最终的渲染输出。LayoutTransform在布局前应用,从而其他控件需要重新排列以适应变换。
(1)使用 RenderTransform:使用RotateTransform时,一定要使用TransformGroup,否则不能进行动画。
(2)RenderTransform的理解和属性值:Render :渲染;Transform:动画;Origin:起点,
(3)RenderTransformOrigin:渲染动画的起点(控制动画起点)
(4)取值为一个坐标的形式 取值范围: 0,0 到 1,1
(5)0,0:表示左上角,如此设置后动画会以左上角为基准点开始;
(6)0.5,0.5:表示中心;
(7)1,1:表示右下角;
RotateTransform:能够让某对象产生旋转变化,根
据中心点进行顺时针旋转或逆时针旋转。
2、使用LayOutTransform
对象中心点用来定义所有RenderTransform变换中相对位置的的参考点,默认为图形的左上即(0,0),该属性值为相对值,介于 0 和 1 之间的值被解释为每对 x,y 轴中的当前元素的范围的因素。
LayoutTransform属性以相同的方式变换元素
RotateTransform:能够让某对象产生旋转变化,根据中心
点进行顺时针旋转或逆时针旋转。
RepeatBehavior:使用RepeataBehavior属性可以控制如何重复运行动画,Forever设置为永久重复
3、动态改变多个变换。
就是在TransformGroup中放置多个变换类。
设置ScaleTransform(缩放变化):属性ScaleX属性表示对象在X轴进行缩放的倍数从0到1历时2秒;
设置ScaleTransform(缩放变化):属性ScaleY属性表示对象在Y轴进行缩放的倍数从0到1历时2秒;
-TimeLine类的常用属性:AccelerationRatio使用动画持续时间中100%的时间进行加速
设置Fill.GradientOrigin属性。线性渐变有一个起点和一个终点用于定义渐变矢量,而径向渐变有一个椭圆以及一个焦点(GradientOrigin) 用于定义渐变行为。该椭圆定义渐变的终点。
BlurEffect模糊效果:通过设置BlurEffect的Radius属性可以设置模糊度
4、关键帧动画
如果需要创建具有多个分段的动画和不规则移动的动画,这个时候可以使用关 键帧动画。关键帧动画是由许多较短的段构成的动画,每段表示动画的初始 值、最终值或中间值。当运行动画时,她平滑地从一个值移动到另一个值。关键帧对象基本上都有Value属性和KeyTime属性。和其他普通动画不同的是Value属性的数据类型,在LinearPointKeyFrame类中是Point类型,在DoubleKeyFrame类中是double类型。
5、离散的关键帧动画。
如上图,使用的是线性关键帧动画,所以,它在关键帧动画之间平滑地过度。
另一种选择是使用离散关键帧,离散关键帧不是进行插值,当到达关键时间
时,属性突然改变为新值。线性关键帧类通常使用"Linear"+数据类型
+KeyFrame"的形式进行命名,离散关键帧类使用"Discrete数据类型
+KeyFrame"的形式命名。当运行这个动画时中心点会在适当的时间从一个位置
跳转到下一个位置。所有关键帧动画类都支持离散关键帧,但只有一部分关键 动画类支持线性关键帧。
6、缓动关键帧。
由离散关键帧可以得出:尽管关键帧动画被分割成多段,但每段仍使用普通的
线性插值。常用的缓动关键帧类有:EasingDoubleKeyFrame、
EasingColorKeyFrame、EasyingPointKeyFrame。每个缓动关键帧类和对应的
线性插值关键帧类的工作方式相同,但是额外提供了EasyingFunction属性。
7、基于帧的动画。
使用帧的动画要为静态的CompositionTarger.Rendering事件关联事件处理程序,一旦关
联这个处理程序,WPF就开始不断地调用这个事件处理程序,WPF将每秒调用60次。当
动画结束后,分离事件处理程序。
XAML高级教程(动画)
最新推荐文章于 2022-11-22 08:41:28 发布