最近在写动画的时候做一个倒计时的效果,就是数字从大到小的一个动画,但是当我设置要new PropertyPath("XXXXXXX")的时候却报了标题的异常,各种报错。百度了好久也无果,因为大
家都有界面设计或是Blend设计后报的错。言归正传。
Storyboard.TargetProperty的设置是动画中的非常重要的,如果此属性设置错误,动画效果是不会显示的,并且会出现错误。
要动画实现RenderTransform属性必须先要在定义控件时先声明RenderTransform属性。否则将会报“无法解析指定对象的的错误” 看代码:
Storyboard storyboard = new Storyboard(); //必要声明 否则报错 TransformGroup Group = new TransformGroup(); Group.Children.Add(new ScaleTransform()); this.RenderTransform = Group; DoubleAnimation Animation_ScaleX = new DoubleAnimation() { To = 2, Duration = new TimeSpan(0, 0, 1), }; Storyboard.SetTarget(Animation_ScaleX, this); Storyboard.SetTargetProperty(Animation_ScaleX, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)")); storyboard.Children.Add(Animation_ScaleX);
你的链接属性里面包含了 (TransformGroup.Children)[0] 那就必须在上面声明一下,然后你要加载的效果都Group.Children.Add()到TransformGroup里面去。这样就不会报错了