WPF实现动画——旋转

WPF实现动画——旋转

1、布局

布局为Canvas画布

2、对象

but.Background = Brushes.LightSteelBlue;//按钮控件的背景颜色
but.Width = but.Height = 100;//按钮控件的宽高大小
xz.Children.Add(but);//将按钮控件添加到Canvas画布中
//设置位置在窗口中居中
Canvas.SetLeft(but, this.Width / 2 - but.Width / 2);
Canvas.SetTop(but, this.Height / 2 - but.Height / 2);
but.Click += But_Click;//添加点击事件

就是说让谁旋转(有这个行为)那么谁就是这个对象,这里我使用Button按钮控件,为正方形

3、实例化旋转对象

//实例化顺时针旋转动画对象
 RotateTransform rotate = new RotateTransform();

注: RotateTransform 表示:围绕指定点顺时针旋转某个对象

4、让按钮顺时针旋转

but.RenderTransform = rotate;//顺时针旋转控件

注:RenderTransform 表示:获取或设置影响的呈现位置的转换信息

5、设置按钮控件旋转的中心点(任何一个对象旋转都要依靠一个点)

 but.RenderTransformOrigin = new Point(0.5, 0.5);//设置旋转中心
 //(0.5,0.5)表示中心

6、添加容器时间线

Storyboard story = new Storyboard();//实例化容器时间线对象
//功能:为子动画提供对象和属性的确切信息

注:

Storyboard 故事板,WPF里面的一种时间线,这种时间线可以操作他运行、停止、前进等等,通过BeginStoryBoard StopStoryBoard等动作

7、实例化处理动画的对象

DoubleAnimation da = new DoubleAnimation(0,3600,new Duration(TimeSpan.FromSeconds(3)));//实例化动画处理对象
            //其实值为0就是原点,旋转一周为360度,但是我们要想让他以10倍的速度旋转这360度,旋转为完需要3毫秒

8、旋转的次数为无线旋转

da.RepeatBehavior = RepeatBehavior.Forever;//设置这个旋转的行为无限循环

9、将按钮控件和这个处理动画的事件链接起来

Storyboard.SetTarget(da, but);//对象和属性,对象是按钮,属性就是行为,旋转的行为

10、旋转肯定是让一个角旋转,来达到旋转的效果

 Storyboard.SetTargetProperty(da, new PropertyPath("RenderTransform.Angle"));//顺时针旋转一个角    让一个角顺时针旋转

11、将旋转的行为添加到Storyboard时间线故事板中

story.Children.Add(da);//将这个旋转的行为(处理动画的类)添加到时间线故事板中

12、最后开启这个故事板就ok了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御弟謌謌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值