2011-09-03 132 views
0

請在visual basic中提供答案。 只是想知道Storyboard.SetTargetName的語法。無法解析TargetName錯誤

Me._StoryMoveLeft = New Storyboard 
DAnim = New DoubleAnimation 
Me._StoryMoveLeft.Children.Add(DAnim) 
Storyboard.SetTargetName(DAnim, "SmoothRectTranslate") 
Storyboard.SetTargetProperty(DAnim, New PropertyPath(TranslateTransform.XProperty)) 

Me._StoryMoveLeft.Stop() 
danim = CType(Me._StoryMoveLeft.Children(0), DoubleAnimation) 
DAnim.Duration = New Duration(ts) 
DAnim.To = newDestinationRect.Left 
Me._StoryMoveLeft.Begin() '<-- ERROR OCCOURS Cannot resolve TargetName SmoothRectTranslate. 
<Rectangle x:Name="RectSmoot" Fill="Lime" Width="20" Height="20" Stroke="{Binding Stroke}" StrokeThickness="{Binding StrokeThickness}" HorizontalAlignment="Left" VerticalAlignment="Top" > 
    <Rectangle.RenderTransform> 
     <TranslateTransform X="20" Y="20" x:Name="SmoothRectTranslate" /> 
    </Rectangle.RenderTransform> 
</Rectangle> 
+0

一切之上WPF,請檢查您的術語,在所有這些情況下,你想要說XAML,不是嗎?另外,XAML代碼片段位於哪裏?如果它在DataTemplate或類似的東西中,你當然不能從它的範圍外動畫它等。 –

+0

嗨。它不是一個模板。只需一個帶有XAML和代碼隱藏的簡單頁面。 – Nasenbaer

回答

0

要在代碼中使用Storyboard.TargetName你需要創建一個名稱範圍,見documentation of SetTargetName對於如何做到這一點的例子。

(順便說一句,如果你只有一個動畫我不會用一個故事板的話,那隻能意味着麻煩,只需撥打BeginAnimation變換)

+0

謝謝H.B.請你能解釋一下,「這隻意味着麻煩」,有一點,因爲如果我理解你的話,它可能解決我的另一個問題。 – Nasenbaer

+0

NameScope.SetNameScope似乎不被WP7支持 – Nasenbaer

+0

@Nasenbaer:麻煩就在這裏,你需要做額外的設置來使用StoryBoard進行動畫,如果你直接爲目標設置動畫,這是不必要的。 –