我有一個DoubleAnimation,我想綁定它的From,To和Duration屬性,以便它們能夠平滑地更改。在Silverlight中綁定動畫的持續時間屬性
From和To的綁定效果很好,可以平滑地改變它們,但Duration的變化只是被忽略。
爲了調試,我做了一個按鈕,點擊後調用包含StoryBoard的Stop和Begin方法,動畫從正確的持續時間開始。此外,我檢查並看到動畫的Duration屬性實際上每次都在更新,所以更改只會被動畫忽略。 (不像從和到真正反應順利進行。)
試圖在WPF相同的,並得到了相同的結果,這裏有一個片段:
<Canvas>
<Canvas.Triggers>
<EventTrigger RoutedEvent="Canvas.Loaded">
<BeginStoryboard>
<Storyboard x:Name="Story">
<DoubleAnimation x:Name="Anime"
Duration="{Binding Duration}"
RepeatBehavior="Forever"
Storyboard.TargetName="Text1"
Storyboard.TargetProperty="(Canvas.Left)"
From="0"
To="400"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Triggers>
<TextBlock Text="Hello" Name="Text1"/>
</Canvas>
我會很感激的解釋爲什麼不是這個工作以及任何可以使綁定工作順利進行的解決方法。
此外,我的實際最終目標是讓TextBlock以恆定速度移動,而不管From和To中的更改。所以如果有另一種方法來實現這一點,它會更好。
謝謝。
0123像是我說的,就我所關心的,綁定工程,我改變了我的視圖模型中的持續時間,並且動畫的持續時間屬性每次都立即更新,這只是我需要調用StoryBoard.Stop ,StoryBoard.Begin,讓動畫真正改變。你能告訴我你的XAML嗎? – Evgeny 2011-06-02 03:19:35
這裏是xaml和.cs,你可以點擊按鈕來改變持續時間。 – demaxSH 2011-06-02 07:25:08