2010-03-12 7 views
3

J'ai un story-board comme ce qui suitWPF animation Durée

Durée = "0: 0: 1" Terminé = "DeviceExplorer_Completed">

L'animation pour une raison quelconque ne semble pas fonctionner linéairement. Si je change la durée à quelque chose comme Durée = "0: 0: 0.8"

et affecter le stroy à un événement MouseEnter d'un bouton, l'animation se déplace mais ne se termine pas pour une raison quelconque, je déplace ma souris sur le bouton quelques fois avant qu'il se termine enetually ...

Des idées pourquoi?

+0

J'ai eu des problèmes avec des animations qui durent moins d'une seconde. Si j'anime l'opacité d'un contrôle à zéro avec une durée de 1 seconde, le contrôle disparaît, mais avec une durée de 0,5 secondes, il disparaît seulement à moitié (c'est à dire qu'il disparaît au même rythme que si la durée était de 1 seconde, s'anime pendant une demi-seconde). Est-ce un bug? Est-ce que quelqu'un a trouvé une solution? – AndrewS

Répondre

1

J'ai eu un problème avec quelque chose comme ça lorsque je créais le storyboard et les animations dynamiquement. Ce qui m'a aidé était de s'assurer que la durée était définie sur les animations individuelles. Vous pourriez essayer de mettre un bouton sur votre écran et l'utiliser pour déclencher le storyboard ... placer un point d'arrêt vous permettrait de vous assurer que les animations ont la même durée que le storyboard.

Après avoir trouvé la solution de contournement, je n'ai pas eu le temps de déboguer complètement le problème, mais je soupçonne que cela a à voir avec l'ordre dans lequel je crée le storyboard et les animations. Dans ma situation, le storyboard est très dynamique, donc ajuster la durée sur quelques objets supplémentaires est le moindre de mes soucis.

8

Vous devez définir la durée de l'animation et non le storyboard. L'animation prend par défaut une durée de 1 seconde si elle n'est pas définie et le storyboard se termine en moins de temps que cela, de sorte que l'animation est coupée en fonction de la durée de la différence. Lorsque vous mettez la durée sur l'animation, cela devrait fonctionner correctement.