微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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属性的值,就知道应该怎么填了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐