最近在寫動畫的時候做一個倒計時的效果,就是數字從大到小的一個動畫,但是當我設定要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裡面去。這樣就不會報錯了