2009-11-30 6 views
1

J'ai un storyboard qui semble s'arrêter aléatoirement tout seul, je ne peux pas comprendre pourquoi.WPF Storyboard s'arrête tout seul

Il semble arrêter et intervalles aléatoires.

private void CreateStoryboard(int from) 
    { 
     int? targetTo; 
     Duration dur; 
     targetTo = 150; 
     dur = 150; 

     Int32Animation element = new Int32Animation(); 
     element.From = from; 
     element.To = targetTo; 
     element.Duration = dur; 
     Storyboard.SetTargetProperty(element, new PropertyPath(CurrentFrameProperty)); 
     _filmstripStoryboard = new Storyboard {SpeedRatio = this.FrameRate}; 
     _filmstripStoryboard.Children.Add(element); 
     _filmstripStoryboard.Completed += new EventHandler(FilmstripStoryboard_Completed); 
     _filmstripStoryboard.Begin(this, true); 
    } 

Comme vous pouvez le voir im affectant la coutume « CurrentFrameProperty » DP, qui a une méthode de rappel que j'imprimer l'image en cours.

Pour une raison quelconque, et je ne sais pas pourquoi, le storyboard s'arrête juste. L'événement terminé n'est PAS déclenché et la méthode de rappel cesse d'être appelée.

Et je suis sûr que je n'appelle pas stop() n'importe où.

Si quelqu'un a eu ce problème ou peut m'aider à le déboguer, je serais très reconnaissant.

Répondre

0

C'était les déconstructeurs! Mes objets avec une référence aux storyboards et aux animations étaient détruits, donc l'animation semblait avoir gelé.

erreur utilisateur :)

0

Votre code devrait fonctionner. Je ne suis pas sûr de ce que le SpeedRatio = this.FrameRate fait, mais vous pouvez facilement tester votre code avec ce morceau supprimé. Ma meilleure estimation est qu'un autre morceau de code affecte votre DpendencyProperty, et ce code multithread vous mord.

+0

Pouvez-vous penser à un moyen de déboguer cela? – Mark

+0

Eh bien, pour commencer, isolez ce code, de sorte que vous puissiez être sûr à 100% que cela fonctionne si aucun autre facteur ne peut influencer votre DP. Si oui, ajoutez le comportement de votre projet complet d'une fonctionnalité à la fois jusqu'à ce que vous puissiez reproduire le problème. Cela semble assez standard, hein? ;-) Bonne chance! – Dabblernl

+0

Existe-t-il un moyen de vérifier si le storyboard (ou l'animation) est éliminé? Je connais l'interface IDispose, mais cela est-il appelé si l'objet est simplement défini sur null? – Mark