专栏首页我和未来有约会动态创建Storyboard

动态创建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。

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [Silverlight动画]转向行为 - 寻找行为

    寻找行为只是把机车移动到指定点。就像这样: public void seek(Vector2D target) { ...

    用户1172164
  • CaseStudy(showcase)数据篇-加载图片

    做silvelight也有一段时间了,相册、游戏,刚刚完成的showcase这个小程序算是一个阶段了。这里就以showcase这个项目来做一下CaseStudy...

    用户1172164
  • 用后台代码创建Storyboard

    string storyboardName = "MyStoryBoard"; string myXamlElement = "MyXamlElement"...

    用户1172164
  • 你知道Android Nougat (牛轧糖)有哪些新鲜口味吗?

    Android 7.0 经过5个开发者预览版本的改善,终于在8.22日正式推送,并确定版本名为Nougat(牛轧糖)。结合本人的体验,在此简单的聊聊Andr...

    open
  • [译] 如何优化您的 Android 应用(Go 版)

    Android 开发者
  • 技术前沿:分布式缓存Redis Cluster在华泰证券的探索与实践

    Redis Cluster作为最热门的开源分布式缓存,在券商领域会有怎样的应用场景?本文从华泰证券的应用现状出发,介绍了Redis Cluster在华泰证券的大...

    数据和云
  • winform treeView 数据绑定

    跟着阿笨一起玩NET
  • mybatis 详解(八)------ 懒加载

      本章我们讲如何通过懒加载来提高mybatis的查询效率。   本章所有代码:http://pan.baidu.com/s/1o8p2Drs 密码:trd6 ...

    IT可乐
  • 自定义View Draw过程- 最易懂的自定义View原理系列(4)

    类似measure过程、layout过程,draw过程根据View的类型分为2种情况:

    Carson.Ho
  • Android绘制优化(二)布局优化

    前言 我们知道一个界面的测量和绘制是通过递归来完成的,减少布局的层数就会减少测量和绘制的时间,从而性能就会得到提升。当然这只是布局优化的一方面,那么如何来进行布...

    用户1269200

扫码关注云+社区

领取腾讯云代金券