在做了一个类似QQ展开的动画时,设置了TopProperty,通过改变Window.Top属性来实现展开特效,
但是动画执行了之后,再去设置Window.Top的时候发现修改不了,代码调试后发现值设置了,但是依旧是原来的值。
这个设计到WPF的动画的一个属性绑架,在MSDN中有详细解释:https://msdn.microsoft.com/zh-cn/library/aa970493(v=VS.100).aspx
在某些情况下,在对属性进行动画处理之后,似乎无法更改该属性的值。
上面的代码似乎未起任何作用:画笔仍然保持为黄色,即对画笔进行动画处理的ColorAnimation 所提供的值。基础属性值(基值)实际上已改为蓝色。 但是,因为 ColorAnimation 仍然在重写基值,所以有效值(或者说当前值)仍保持为黄色。如果需要将基值再次变为有效值,则必须禁止动画影响该属性。 使用演示图板动画,可以有三种方法实现此目标:
-
将动画的 FillBehavior 属性设置为Stop
-
移除整个演示图板。
-
从单个属性移除动画。
每种方法都给了详细用法和解释。
当然对我来说,最简单的方法就是第一种,一句代码搞定!
MSDN文档库目录:https://msdn.microsoft.com/zh-cn/library/ms310241