在做项目的时候,用到了动画的设置,项目中要求改变控件的属性来实现动画效果。通过查找资料,项目中需要改变控件的透明度实现忽有忽无的动画效果,所以采用的是DoubleAnimation,是控件的透明度从1.0到0的过程。单纯使用DoubleAnimation是没有反应的,(在WPF葵花宝典中看到过有直接用DoubleAnimation的,但是我自己用没有反应,不知道是什么原因。欢迎有用过的大神前来指教。)这里通过加在StoryBoard里实现了,代码如下:
1 Storyboard storyboard=new Storyboard(); 2 DoubleAnimation myDoubleAnimation = new DoubleAnimation(); 3 myDoubleAnimation.From = 1;
4 myDoubleAnimation.To = 0;
5 myDoubleAnimation. AutoReverse=true; 6 myDoubleAnimation.RepeatBehavior=Forever; 7 myDoubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(1)); 8 storyboard.Chidren.Add(myDoubleAnimation); 9 storyboard.SetTarget(myDoubleAnimation, ucprivew); 10 //ucpreview is a usercontrol 11 storyboard.SetTargetProperty(myDoubleAnimation, new PropertyPath(UserControl.Opacity)); 12 storyboard.Begin(); 13 14
之前的很多都是xaml代码,里面有EventTrigger,开始的时候还以为这个是多余的,但是,经过多次试验发现,这是必须的,Storyboard必须要有触发事件的,比如Load事件、Click事件等路由事件才能够触发的。这是非常关键的,否则是没有反应的。