WPF后台代码实现动画效果

WPF后台代码实现动画效果

要用到的对象:

 DoubleAnimation dda1 = new DoubleAnimation( );

DoubleAnimation :动画

 **功能**:在指定的Timeline.Duration上使用线性内插对两个目标值之间的double属性值进行动画处理(也就是说动画处理的)

​ 参数1:Form是起始值,就是最初开始某种行为的值

​ 参数2:To是最终的值,就是某种行为最后到达的值

​ 参数3:Duration是处于活动状态的时间,也就是说多长时间来做完某种行为,这个是用new的方法赋值

​ 然后里边的值是由Time.Span.的方法赋值,里边的值有秒、毫秒、分、小时等单位,可以根据自己的实际情况而定

一、放大(伸缩)动画

1、首先实例化动画处理的对象,看你是放大还是伸缩,伸缩就宽度或者高度,放大就是宽度与高度

2、运动到一定的值后要返回

 dda.AutoReverse = true;//返回

AutoReverse

​ 功能:获取或设置一个值,该值指示时间线在完成向前迭代后是否按相反的顺序播放(也即是说返回)

3、当运动返回后,表明这是一个完整的来回,但是它还是会停下来,所以要让他一直循环

dda.RepeatBehavior = RepeatBehavior.Forever;//重复这个行为

RepeatBehavior

​ 功能:获取或设置此时间线的重复行为(就是说一直重复完整的某种行为)

4、最后就是开启这个动画

 bord4.BeginAnimation(Border.HeightProperty, dda1);启动动画

BeginAnimation

​ 功能:在此元素上启动指定的动画属性的动画

Border.HeightProperty:表示在高度上放大

Border.WidthProperty:表示在宽度上放大

全部代码

//宽度放大
            DoubleAnimation dda = new DoubleAnimation(100,150,new Duration(TimeSpan.FromSeconds(3)));
            //实例化动画处理对象
            dda.AutoReverse = true;//返回
            dda.RepeatBehavior = RepeatBehavior.Forever;//重复这个行为
            bord4.BeginAnimation(Border.WidthProperty, dda);//启动动画
//高度放大
            DoubleAnimation dda1 = new DoubleAnimation(100, 150, new Duration(TimeSpan.FromSeconds(3)));
            //实例化动画处理对象
            dda1.AutoReverse = true;//返回
            dda1.RepeatBehavior = RepeatBehavior.Forever;//重复这个行为
            bord4.BeginAnimation(Border.HeightProperty, dda1);启动动画

二、平移动画

1、实例化平移对象

 TranslateTransform tt = new TranslateTransform();//实例化旋转对象(顺时针旋转)

TranslateTransform

​ 功能:在二维X-Y坐标系统内平移(移动对象)

2、平移对象有了,那么是让哪个控件移动呢?

 bord.RenderTransform = tt;//让border控件平移

RenderTransform

​ 功能:获取或设置影响此元素的呈现位置的转换信息,这是依赖性属性

3、创建动画处理对象,并赋值

4、反向运动某种行为

5、无限循环某种行为

6、开启动画运动

 tt.BeginAnimation(TranslateTransform.XProperty, by);//启动动画

BeginAnimation

​ 功能:将动画应用于指定的关联属性,动画会在呈现下一帧的时候启动,如果指定属性已进行动画处理,则切换行为

全部代码:

 TranslateTransform tt = new TranslateTransform();//创建平移对象
            bord1.RenderTransform = tt;
            DoubleAnimation by = new DoubleAnimation(bord1.Width, this.Width-bord1.Width, new Duration(TimeSpan.FromMinutes(0.5)));//创建动画处理对象
            by.AutoReverse = true;//反向运动
            by.RepeatBehavior = RepeatBehavior.Forever;//无限循环
            tt.BeginAnimation(TranslateTransform.XProperty, by);

三、旋转动画

1、实例化旋转对象

RotateTransform roate1 = new RotateTransform();//创建旋转对象

RotateTransform

​ 功能:在二维X-Y坐标系统中围绕指定点顺序顺时针旋转某个对象

2、将旋转的对象赋值给要旋转的控件的位置属性

 bord3.RenderTransform = roate1;//将旋转对象赋值给bord3控件的位置

3、旋转的位置(按中心点还是哪个位置)

 bord3.RenderTransformOrigin = new Point(0.5, 0.5);//旋转的位置为中心点旋转

RenderTransformOrigin

功能:获取或设置任何可能呈现的转换中心点,相对于元素的边界,这是依赖属性。 也就是说设置旋转的位置

注:RenderTransformOrigin的取值

0.5,0.5表示在中心点
0,0表示在左上角
1,1表示在右下角

4、创建动画处理对象,并赋值

 DoubleAnimation double1 = new DoubleAnimation(0,360,new Duration(TimeSpan.FromMinutes(0.3)));//创建处理动画对象并赋值

注:

Form 的值为 0表示从0度开始旋转
To的值为 360表示旋转一周,一周为360度

5、这个旋转是旋转一周,然会要让他重复旋转

 double1.RepeatBehavior = RepeatBehavior.Forever;//重复旋转的这个行为

6、最后开启这个动画

roate1.BeginAnimation(RotateTransform.AngleProperty, double1);//开启动画
//旋转一个角的动画,并开启动画

AngleProperty:角

全部代码

 RotateTransform roate1 = new RotateTransform();//创建旋转对象
            bord3.RenderTransform = roate1;//将旋转对象赋值给bord3控件的位置
            bord3.RenderTransformOrigin = new Point(0.5, 0.5);//旋转的位置为中心点旋转
            DoubleAnimation double1 = new DoubleAnimation(0,360,new Duration(TimeSpan.FromMinutes(0.3)));//创建处理动画对象并赋值
            //创建动画处理对象
            double1.RepeatBehavior = RepeatBehavior.Forever;//重复旋转的这个行为
            roate1.BeginAnimation(RotateTransform.AngleProperty, double1);//开启动画
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页