[WPF] WPF User Controller with rotation and animation

13 篇文章 1 订阅

简介

这次的项目需求,需要做一个可以开关门的动画控件,并且可以旋转,而且要不能覆盖到背后的图

八年前学习Win32SDK的时候,自己就不是很喜欢用GDI来画图

这次就选择WPF来做!

 

C# Code

 

控件的旋转,我声明了一个DoorAngle属性,利用WPF的RenderTransform属性来旋转控件

开关门的动画部分,我同时使用了DoubleAnimationThinknessAnimation来达成门的开关效果

如果只是利用DoubleAnimation来控制RectangleWidth的话,控件是会往中间缩小

所以要搭配ThinknessAnimation,修改Margin,让门在开启的时候固定在一个位置

使用到了两个动画,那就必须要使用StoryBoard來處理了

this.Dispatcher.BeginInvoke(new MethodInvoker(StartAnimiation), null);

我声明了一个DoorOpened属性,只要透过这个属性,就可以设定门的开关,并同时播放动画

但是由于项目的数据,会放在一个执行序中过更新的动作

所以透过Dispatcher呼叫StartAnimation,才可以正常运作

 

XAML

 

画面上,我声明了leftdoor和rightdoor, 利用两个Rectangle来做一个简单的门

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值