eskysky
发布于 2021-04-18 / 40 阅读
0

WPF动画示例(DoubleAnimation类)

首先在WPF界面中添加一个按钮(控件名称为animationButton),本文的所有动画都将在这个控件上展示。

控件大小改变动画

Storyboard sb = new Storyboard();//创建故事板
DoubleAnimation da = new DoubleAnimation();//创建动画对象
//da.From = 0;//动画起始值
//da.To = 100;//动画终止值
da.By = 50;//动画增加范围
da.Duration = TimeSpan.FromSeconds(1);//设置动画持续时间
da.RepeatBehavior = RepeatBehavior.Forever;//设置动画循环次数(无限次循环)
da.AutoReverse = true;//设置动画结束后是否倒序播放
Storyboard.SetTarget(da, animationButton);//绑定动画控件
Storyboard.SetTargetProperty(da, new PropertyPath("Width"));//设置依赖的控件属性
sb.Children.Add(da);//添加动画到故事板
sb.Begin();//开始动画
控件大小改变动画

控件位移动画

Storyboard sb = new Storyboard();//创建故事板
animationButton.RenderTransform = new TranslateTransform(0, 0);//设置控件支持位移

DoubleAnimation da = new DoubleAnimation();//创建动画对象
da.By = 70;//设置动画范围
da.Duration = TimeSpan.FromSeconds(1);//设置动画持续时间

Storyboard.SetTarget(da, animationButton);//绑定动画控件
Storyboard.SetTargetProperty(da, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)"));//设置依赖的控件属性
sb.Children.Add(da);//添加动画到故事板
sb.Begin();//开始动画
控件位移动画

控件旋转动画

Storyboard sb = new Storyboard();//创建故事板
animationButton.RenderTransform = new RotateTransform(0,0, 0);//设置控件支持旋转

DoubleAnimation da = new DoubleAnimation();//创建动画对象
da.By = 360;//旋转360度
da.Duration = TimeSpan.FromSeconds(1);//设置动画持续时间

Storyboard.SetTarget(da, animationButton);//绑定动画控件
Storyboard.SetTargetProperty(da, new PropertyPath("(UIElement.RenderTransform).(RotateTransform.Angle)"));//设置依赖的控件属性
sb.Children.Add(da);//添加动画到故事板
sb.Begin();//开始动画
控件旋转动画

渐变动画(透明度变化动画)

Storyboard sb = new Storyboard();//创建故事板
DoubleAnimation da = new DoubleAnimation();//创建动画对象
da.From = 0;//设置透明度 0-1
da.To = 1;
da.Duration = TimeSpan.FromSeconds(2);//设置动画持续时间
Storyboard.SetTarget(da, animationButton);//绑定动画控件
Storyboard.SetTargetProperty(da, new PropertyPath("Opacity"));//设置依赖的控件属性
sb.Children.Add(da);//添加动画到故事板
sb.Begin();//开始动画
渐变动画