• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Silverlight中C#写动画设置

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

http://www.cnblogs.com/ListenFly/archive/2011/10/09/2200725.html   这篇文章里面

Silverlight中动画的 Storyboard.TargetProperty设置

非常详细地讲解了关于Silverlight中动画的TargetProperty设置。但是对于我来说,貌似还是没有解决我的问题。

 

经过不懈的百度终于解决了,在这里讲我自己的解决过程记录下来:

首先我查看了sl4的中文开发文档,发现文档里面::RenderTransform的一句描述如下:

这通常是由 Silverlight 定义的变换之一:RotateTransformScaleTransformSkewTransformTranslateTransformMatrixTransformTransformGroup

经过实践发现,还有一种CompositeTransform:

包含的属性:

Name (DependencyObject), CenterX, CenterY, Rotation, ScaleX, ScaleY, SkewX, SkewY, TranslateX, TranslateY

以上全部的都查找之后发现。只有这个没有出现在文档中的存在TranslateX, TranslateY这两个属性。

为什么需要找这两个属性呢?因为我本身在Blend 4中使用Blend生成的,在Grid控件里面添加其他控件的移动动画的时候发现绑定的目标属性是:

Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)"  于是直接使用引号里面的东东。

运行调试-报错“无法解析指定对象的 TargetProperty (UIElement.RenderTransform).(CompositeTransform.TranslateY)”然后各种悲剧。没办法,继续度娘。

 

这次发现无法解析的原因就是因为:

sp.RenderTransform = new CompositeTransform();

这个RenderTransform没有生命或者声明错误了导致的。赶紧改好。

 再次运行---一起OK,动画有了。。。我只是单纯的使用Y轴偏移做了一个事例。

大家喜欢尝试的可以设置不同的TargetProperty自己体验

 

DoubleAnimation aniY = new DoubleAnimation()
                {
                    From = 0,
                    Duration = new Duration(new TimeSpan(0, 0, 0, 2))
                };

               aniY.To = 100;
//下面这句非常重要,否则无法解析TargetProperty
                sp.RenderTransform = new CompositeTransform();

                Storyboard.SetTarget(aniY, sp);
                Storyboard.SetTargetProperty(aniY, new PropertyPath("(UIElement.RenderTransform).(CompositeTransform.TranslateY)"));

                Storyboard story = new Storyboard();
                story.Children.Add(aniX);
                story.Children.Add(aniY);
                story.Begin();

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
转:各种专题图实现的C#源代码发布时间:2022-07-13
下一篇:
C#读取Excel内容发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap