2009-10-07 8 views
2

Donc j'essaie de déplacer un ScatterViewItem d'un point à un autre. J'ai essayé d'utiliser PointAnimation. Cependant, une fois l'animation terminée, je ne peux pas déplacer l'élément du point To. Je peux faire tourner l'objet et le mettre à l'échelle, mais pour une raison quelconque, je ne peux pas le déplacer.MS Surface animant un SVI le long d'une ligne droite

C'est un mouvement simple d'un point à l'autre en ligne droite. Devrais-je utiliser PointAnimation ou existe-t-il un meilleur moyen? Merci que je fais cela en C#

Mon point de code d'animation:

 oPointAnimation = new PointAnimation(); 
     oPointAnimation.From = new Point(439, 113); 
     oPointAnimation.To = new Point(139, 160); 

     oPointAnimation.Duration = TimeSpan.FromSeconds(4); 
     oPointAnimation.Completed += new EventHandler(oPointAnimation_Completed); 
     theCard.BeginAnimation(ScatterViewItem.CenterProperty, oPointAnimation); 
+0

Oh mon dieu merci, j'ai été bloqué sur ça trop longtemps. –

Répondre

1

Je suppose que vous devez utiliser FillBehaviour du POintAnimation à FillBehavior = "Stop"

1

Bien que vous avez déjà accepté répondre, je voudrais ajouter un point ici.

Même lorsque FillBehavior est réglé sur Stop, il y a certaines situations où cela ne fonctionne pas. Je crois qu'il est en conjonction avec HandoffBehavior mis à SnapshotAndReplace. Ce que j'ai fait dans ces cas est de démarrer par programme une nouvelle animation (en utilisant BeginAnimation) sur cette propriété de dépendance avec un null comme deuxième argument. Cela efface toutes les animations de cette propriété de dépendance et vous permet d'y affecter librement de nouvelles valeurs.

Questions connexes