我有一个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