转载

WPF 开发摘记 Ay总结 之 后台代码编写动画,不用StoryBoard

www.ayjs.net     AY原创,   转载请 标记出处,谢谢

颜色渐变,假如Canvas的背景颜色渐变

大家常用StoryBoard的写法我就不说了,这里我说关键帧的写法

  1. 创建关键帧集

ColorAnimationUsingKeyFrames MouseOverFrames = new ColorAnimationUsingKeyFrames();

这里有个细节                   帧集合.FillBehavior = FillBehavior.Stop; 是设置 动画执行完是否恢复原值,也就是最终不锁定动画属性,使得后台可以修改,这个很常用,理解也很重要

关于 帧集合.Completed  完成事件,你也可以完成时候,手动设置最终值,使得 属性不会被动画锁定

2. 补充 每帧

EasingColorKeyFrame over1 = new EasingColorKeyFrame(MouseOverBackground, KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(300)),easyIn);

3. 使用缓冲函数过渡,比如如下

IEasingFunction easyIn = new CircleEase() { EasingMode = EasingMode.EaseIn };

4. 执行动画

this.Background.BeginAnimation(SolidColorBrush.ColorProperty, MouseOverFrames);

当然这里 也可以是 控件元素的 BeginAnimation,这里演示的是特殊的颜色带有层级关系的   DependencyObject

当然你也可以把一整套frame放入storyboard,然后统一执行.

正文到此结束
Loading...