WPF动画(2)

本文探讨了WPF动画的生命周期,指出动画在完成时如何影响属性值。介绍了单向动画的问题以及解决方案,如设置AutoReverse属性和FillBehavior属性。同时,讲解了TimeLine类中的AccelerationRatio和DecelerationRatio属性用于调整动画速度,以及RepeatBehavior属性用于控制动画重复行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动画的生命周期

从技术的角度看,WPF动画只是暂时的,这意味着它们不能真正改变基本属性的 值,当动画处于活动状态时,只是覆盖了属性的值

单向动画,在动画运行结束后会保持处于活动状态,这是因为动画需要将按钮的宽度保 持为新值,这会导致如下常见问题,如果尝试使用代码在动画完成后修改属性值,代码 将不会起作用,因为代码只是为属性指定了一个新的本地值,但仍会先试用动画之后的 属性值。

为了解决动画完成后能修改属性的值,有以下方法可解决。

1)、设置AutoReverse属性,如果将该属性设置为true,将会反向运动,返回原始的 (不适合动画完成后,再为属性设置最后的值,只是还原为动画之前的值)

2)、改变FillBehavior属性。通常,FillBehavior属性设置为HoldEnd,这意味着当 动画结束时,会继续为目标元素应用最后的值。如果将FillBehavior属性改为Stop,只要 动画结束,属性就会恢复为原来的值(适用于动画结束后,再次为其设置新值,一般不与 AutoReverse配合着使用,这两个用其中一个就行了)

TimeLine

TimeLine类的常用属性。

5.1)AccelerationRatioDeceleRation属性。

可以通过AcclerationRationDecelerationRation属性压缩部分时间轴,使动画运行的 更快,并将拉伸其他时间进行补偿,使总时间保持不变。这两个属性都表示百分比值例如,将AcceleRation属性设置为0.3,表示希望使用动画持续时间中前30%的时间进行 加速。例如在110秒的动画中,前3秒会加速运行,而剩余的7秒会以恒定不变的速度 运行,如果将DeceleRation属性设置为0.3,那么最后3秒回减速运行。

5.2)RepeatBehavior属性

 

使用RepeataBehavior属性可以控制如何重复运行动画,如果希望重复固定次数,应为 RepeatBehavior构造函数传递合适的次数。

还可设置RepeatBehavior为永久重复。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值