Silverlight4.0中移动一个元素动画的后台代码

        public Storyboard CreateMoveAnimation(UIElement animationTarget, Point sourcePoint, Point targetPoint, Duration duration)
        {
            //throw new NotImplementedException();

            DoubleAnimation xda = new DoubleAnimation(), yda = new DoubleAnimation();
            xda.From = sourcePoint.X;
            xda.To = targetPoint.X;
            yda.From = sourcePoint.Y;
            yda.To = targetPoint.Y;
            xda.Duration = yda.Duration = duration;
           
            //(animationTarget.RenderTransform).(CompositeTransform.TranslateXProperty)
            Storyboard.SetTarget(xda, animationTarget);
            Storyboard.SetTargetProperty(xda, new PropertyPath("(UIElement.RenderTransform).(CompositeTransform.TranslateX)"));
            Storyboard.SetTarget(yda, animationTarget);
            Storyboard.SetTargetProperty(yda, new PropertyPath("(UIElement.RenderTransform).(CompositeTransform.TranslateY)"));

            Storyboard sb = new Storyboard();
            sb.Children.Add(xda);
            sb.Children.Add(yda);
            sb.Begin();
            return sb;
        }

请注意正确使用SetTargetProperty里面的new PropertyPath,如果设置不正确动画没发正常显示。


如果不敢肯定自己要移动的那个元素是否能使用这种PropertyPath,请现在Blend或者VS中手动拖动出一个动画,分析生成的XAML文件中TargetProperty属性的值,就知道应该怎么填了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值