Я пытаюсь повернуть 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 секунды:
leftRotation.Duration = speed1;
На первый взгляд, это похоже на работу, особенно если изменения в скорости небольшие. Но если скорость увеличивается, то при каждом обновлении колесо, кажется, регулирует свой угол немного больше, вызывая «икоты».
(если скорость увеличивается, например, от 2 с до 4 с в течение 2-минутного периода, колесо кажется прыгает вперед на 1-2 градуса в конце, если оно уменьшается во времени, колесо поворачивается немного назад при каждом обновлении)
Я также пытался реализовать поведение с использованием фиксированной длительности и обновлять SpeedRatio, но это тоже не помогло, эти корректировки все же произошли.
Я довольно новичок в Silverlight / Windows Phone, поэтому у меня нет более глубокого понимания того, как это работает внутри, я был бы признателен, если бы кто-нибудь дал мне подсказку, как решить это. Спасибо ...