DoubleAnimation rotateAnimation = new DoubleAnimation()
{
From = 0,
To = 90,
Duration = new Duration(TimeSpan.FromSeconds(10.0))
...//
Здесь вы явно указываете нежелательное поведение.Вам необходимо создать анимацию, но затем повторно использовать ту же анимацию, модифицируя ее с помощью логики By
, а не создавать новую анимацию с жестко заданными начальными значениями To
и From
, которые работают только для 25% поворотов на 90 градусов..
Кроме того, при правильном повторном использовании объекта анимации вы можете получить доступ к свойству To
, которое будет конечной точкой предыдущего поворота, установить новый From
в старое To
иновый To
к новому From + 90
.Если старым To
было 360, вы можете сделать From
и To
0 и 90 соответственно, как в вашей текущей реализации, для сброса процесса.
Последний вариант - это видеть старый DoubleAnimation
объект видимым в обработчике событий, из которого вы читаете его From
и To
, которые затем сообщают From
и To
нового DoubleAnimation
, который вы только что сконструировали, таким образом, который ваш код использует в настоящее время.Следующий дескриптор, новый объект анимации рассматривается как старый, и процесс повторяется.
Документация по свойствам