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] 举报,一经查实,本站将立刻删除。