Използвам DoubleAnimation за анамизиране на свойството Angle на RotationTransform. Няколко пъти в секунда трябва да променя скоростта на въртене в отговор на външни данни, така че въртенето да се ускорява и/или забавя (плавно) с течение на времето. В момента правя това, като използвам DoubleAnimation, който се повтаря завинаги от 0.0 до 360.0 с продължителност X, след това няколко пъти в секунда:
- Вземете нова стойност от външни данни
- Променете скоростта на DoubleAnimation до тази стойност
- Приложете отново DoubleAnimation към свойството Angle отново
Забележка: Наистина открих, че трябваше да променя свойствата До и От на анимацията на „текущ ъгъл“ и „текущ ъгъл+360“ – за мое щастие RotationTransform няма проблеми с ъгли > 360 градуса – за да предотврати стартирането на въртенето отгоре отново от нулев ъгъл.
Въпросът ми е: това разумно ли е? Не изглежда така. Непрекъснатото прилагане на нови DoubleAnimations към свойството Angle при трансформация на въртене изглежда погрешно - нещо като оставям на WPF да анимира въртенето, докато Аз сам анимирам скоростта на въртене.
Има ли по-добър начин?