动态创建Storyboard

2018-03-01 18:45:23 浏览数 (1)

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

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

代码:

代码语言:javascript复制
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。

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

0 人点赞