Lo storyboard di WPF si ferma da solo
-
08-07-2019 - |
Domanda
Ho uno storyboard che sembra fermarsi casualmente da solo, non posso per la vita di me capire perché.
Sembra fermarsi e intervalli casuali.
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);
}
Come puoi vedere, influendo sulla personalizzazione " CurrentFrameProperty " DP, che ha un metodo di callback per la stampa del frame corrente.
Per qualche ragione, e non ho proprio idea del perché, lo storyboard si ferma. L'evento completato NON viene generato e il metodo di callback smette di essere chiamato.
E sono sicuro di non chiamare stop () da nessuna parte.
Se qualcuno ha riscontrato questo problema o può aiutarmi a eseguire il debug, sarei molto grato.
Soluzione 2
Erano i decostruttori! I miei oggetti con riferimento agli storyboard e alle animazioni venivano distrutti, quindi l'animazione sembrava congelata.
errore utente :)
Altri suggerimenti
Il tuo codice dovrebbe funzionare. Non sono sicuro di cosa faccia SpeedRatio = this.FrameRate, ma puoi facilmente testare il tuo codice rimuovendo quel pezzo. La mia ipotesi migliore è che qualche altro pezzo di codice stia influenzando la tua proprietà Dpendency e che il codice multithread ti morda.