博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF Blend 一个动画结束后另一个动画开始执行(一个一个执行)
阅读量:4985 次
发布时间:2019-06-12

本文共 3500 字,大约阅读时间需要 11 分钟。

原文:

先说明思路:一个故事版Storyboard,两个双精度动画帧DoubleAnimation。

一个一个执行的原理:控制动画开始时间(例如第一个动画用时2秒,第二个动画就第2秒起开始执行。)

XAML:

                            

 

 后台代码:

     #region 创建故事版        //创建一个故事版        Storyboard storyboard = new Storyboard();        private void CreateStoryboard()        {            //定义动画1运行时间==动画2等待时间            TimeSpan ts = new TimeSpan(0, 0, 1);            #region 创建第一个动画            DoubleAnimation doubleAnimation = new DoubleAnimation();            //目标角度            doubleAnimation.To = 360;            //结束时间            doubleAnimation.Duration = new Duration(ts);            Storyboard.SetTarget(doubleAnimation, img_FanRotate);            Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"));            storyboard.Children.Add(doubleAnimation);            #endregion             #region 创建第二个动画            DoubleAnimation doubleAnimation2 = new DoubleAnimation();            //目标角度            doubleAnimation2.To = 360;            //设置等待时间            doubleAnimation2.BeginTime = ts;            //结束时间            doubleAnimation2.Duration = new Duration(new TimeSpan(0, 0, 1));            //故事版中设置目标            Storyboard.SetTarget(doubleAnimation2, img_FanRotate2);            //故事版中设置属性路径            Storyboard.SetTargetProperty(doubleAnimation2, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"));            //将动画添加至故事版末尾            storyboard.Children.Add(doubleAnimation2);            #endregion             //开始故事版            //storyboard.Begin();        }        #endregion
   #region 按钮        //开始        private void button3_Click(object sender, RoutedEventArgs e)        {            storyboard.Begin(img_FanRotate, true);            storyboard.Begin(img_FanRotate2, true);        }        //暂停        private void button_Click(object sender, RoutedEventArgs e)        {            storyboard.Pause(img_FanRotate);            storyboard.Pause(img_FanRotate2);        }        //继续        private void button1_Click(object sender, RoutedEventArgs e)        {            storyboard.Resume(img_FanRotate);            storyboard.Resume(img_FanRotate2);        }        //停止        private void button2_Click(object sender, RoutedEventArgs e)        {            storyboard.Stop(img_FanRotate);            storyboard.Stop(img_FanRotate2);        }        #endregion

 

posted on
2018-08-30 11:53 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/9559337.html

你可能感兴趣的文章
AC日记——基因相关性 openjudge 1.7 03
查看>>
ajax的访问 WebService 的方法
查看>>
Python的垃圾回收机制
查看>>
常用开源<监控软件>介绍
查看>>
还不研究Scatter?
查看>>
websoket在项目中的使用
查看>>
sql.date
查看>>
CodeForces 559C Gerald and Gia (格路+容斥+DP)
查看>>
百度地图-中国地图
查看>>
线性判别函数-Fisher 线性判别
查看>>
面试小题
查看>>
My latest news
查看>>
VisualStudio 2015 开启IIS Express可以调试X64项目
查看>>
关于block 用法
查看>>
layui学习
查看>>
zepto源码--整体框架--学习笔记
查看>>
ZeroMQ研究与应用分析
查看>>
纯windows下制作变色龙引导安装U盘教程
查看>>
输出一个数组里最大子数组的和(文件)
查看>>
复杂sql书写方法
查看>>