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();//开始动画