Estoy usando una doble animación para anamiar la propiedad Ángulo de una Transformación de rotación. Varias veces por segundo, necesito cambiar la velocidad de rotación en respuesta a los datos externos para que la rotación se acelere o desacelere (sin problemas) con el tiempo. Actualmente estoy haciendo esto usando un DoubleAnimation que se repite siempre de 0.0 a 360,0 con una duración X, luego varias veces por segundo:Cambie dinámicamente una animación de rotación en WPF
- Coge un nuevo valor a partir de datos externos
- modificar la velocidad en la DoubleAnimation a ese valor
- volver a aplicar el DoubleAnimation a la propiedad ángulo de nuevo
Nota: me pareció que tenía que cambiar el a y desde las propiedades de la animación "ángulo actual" y "ángulo actual + 360" - Por suerte para mí RotationTransform no tiene problemas con los ángulos > 360 grados - para evitar que comience nuevamente la rotación desde el ángulo cero.
Mi pregunta es: ¿es esto razonable? No parece así. La aplicación continua de nuevas DoubleAnimations a la propiedad Angle en una transformación de rotación parece incorrecta, algo así como dejar que WPF anime la rotación, mientras que I estoy animando la velocidad de rotación.
¿Hay una manera mejor?
Eso sería muy apreciado. – Bill
Gracias, podré usar eso. Es curioso que tengamos que hacer una llamada a un método (SetSpeedRatio), lo que significa que no puedo animar el cambio de relación de velocidad con otra animación, todo en Xaml y todo; pero esto parece mucho más correcto que aplicar nuevas animaciones todo el tiempo para obtener el efecto. Gracias. – Bill
Esta respuesta fue muy útil en nuestro caso, pero hay una diferencia importante que no lo hizo funcionar. al menos con WPF en WinRT. El método SetSpeedRatio() no hizo nada, así que lo cambiamos a la propiedad SpeedRatio y eso funcionó. –