C# 更新情节提要中旋转的速度/持续时间

C# 更新情节提要中旋转的速度/持续时间,c#,windows-phone-7,storyboard,C#,Windows Phone 7,Storyboard,我试图旋转一个UserControl(图像),并通过编程调整旋转的速度 首先,我定义了一个故事板,它旋转一个轮子: <Storyboard x:Name="wheelRotation"> <DoubleAnimation x:Name="leftRotation" Storyboard.TargetName="leftWheel" Storyboard.Ta

我试图旋转一个UserControl(图像),并通过编程调整旋转的速度

首先,我定义了一个故事板,它旋转一个轮子:

 <Storyboard x:Name="wheelRotation">
            <DoubleAnimation
                x:Name="leftRotation"
                Storyboard.TargetName="leftWheel"
                Storyboard.TargetProperty="(leftWheel.RenderTransform).(RotateTransform.Angle)"
                From="360" To="0" Duration="0:0:2"
                AutoReverse="False"
                RepeatBehavior="Forever">
            </DoubleAnimation>
</Storyboard>
乍一看,这似乎有效,尤其是在速度变化很小的情况下。但是,如果速度增加,在每次更新时,车轮似乎会稍微调整其角度,导致“打嗝”。 (如果速度增加,例如在2分钟内从2秒增加到4秒,则车轮在结束时会向前跳动1-2度,如果时间减少,则每次更新时车轮都会向后旋转一点)

我还尝试使用固定的持续时间来实现该行为,并更新速度比,但这也没有帮助,这些调整仍然发生


我对Silverlight/Windows Phone相当陌生,因此我对它的内部工作原理没有更深入的了解,如果有人能给我一个解决方法的提示,我将不胜感激。谢谢…

我不确定在运行时更改
情节提要
/double动画的属性是否是个好主意。我将删除
RepeatBehavior=“Forever”
,这样动画将触发一次,而不是处理
情节提要。已完成的
事件,以便在每次停止时再次启动动画。然后,您可以在重新开始之前调整持续时间。

我不确定在运行时更改
情节提要
/double动画的属性是否是一个好主意。我将删除
RepeatBehavior=“Forever”
,这样动画将触发一次,而不是处理
情节提要。已完成的
事件,以便在每次停止时再次启动动画。然后,您可以在重新开始之前调整持续时间。

您能解释一下您想做什么吗?我还没有尝试过在飞行中改变动画,所以没有这方面的经验。你能解释一下你在做什么吗(为什么动画需要在运行时像那样改变)?你能解释一下你想做什么吗?我还没有尝试过在飞行中改变动画,所以没有这方面的经验。你能解释一下你在做什么吗(为什么动画需要在运行时这样更改)?谢谢。尝试过,但旋转会暂停大约半秒钟,然后继续,即使我在完成的事件中所做的只是调用
wheelRotation.Begin()谢谢。尝试过,但旋转会暂停大约半秒钟,然后继续,即使我在完成的事件中所做的只是调用
wheelRotation.Begin()
leftRotation.Duration = speed1;