动态创建Storyboard

做动画或者做控件的时候不一定都要在xaml里做Storyboard,有时候在代码里动态创建会更加灵活些。

这里以我做的一个改变颜色的Storyboard为例来做说明。(查了不少英文资料,大多都是对beta2的,和release的版本有些不同)

代码:

            Storyboard storyboard = new Storyboard();
            Brush br 
= xRectangle.Fill;
            ColorAnimation colorAnim 
= new ColorAnimation();
            colorAnim.To 
= ToColor;
            colorAnim.Duration = TimeSpan.FromSeconds(1);
            colorAnim.RepeatBehavior 
= new RepeatBehavior(1);
            colorAnim.AutoReverse 
= false;
            Storyboard.SetTarget(colorAnim, br);
            Storyboard.SetTargetProperty(colorAnim, 
new PropertyPath("Color"));
            storyboard.Children.Add(colorAnim);
            Resources.Add(
"colorsb", storyboard);

 

这样一个变换颜色的动画就完成了。

Resources.Add("colorsb", storyboard);  

这一句是把Storyboard插入页面的资源中,和beta2不同,资源文件都是建值对应的,所以在这里要指定一个key。

其中高亮部分是我为了做成控件把属性暴露了出去。这个属性就是你要变化到的颜色。

posted @ 2009-03-09 22:58  王喆(nasa)  阅读(1426)  评论(0编辑  收藏  举报