Was ist der richtige Weg, um ein Storyboard aus dem .net-Code zu stoppen und neu zu starten?
Ich versuche es ...
%Vor%Erwartet, dass ein nachfolgender Aufruf an .Begin (this); würde von der Timeline bei Null neu starten, aber stattdessen nimmt das Storyboard genau dort auf, wo es gestoppt wurde.
Ich habe es versucht
%Vor%und ich habe es versucht
%Vor%was auch nicht funktioniert hat.
Weitere Details ... Hier ist mein Storyboard-Beispiel.
%Vor%So läuft der Text im Textone, und wenn Sie den Bildschirm schließen und schnell zum Bildschirm zurückkehren, spielt der Text zwei tatsächlich über ein neu gestartetes Storyboard. Also das Original (vom ersten Bildschirm) Storyboard ist immer noch herum und spielt, obwohl ich es entfernt habe, und stoppte es.
Wie wäre es mit Storyboard.Seek (TimeSpan.Zero)? Ähnlich wie beim Suchen in einem Stream, sollten Sie damit zum Anfang der Animation zurückkehren.
Ich habe bemerkt, dass Sie auch sicherstellen sollten, dass die IsControlable-Eigenschaft auf "true" gesetzt ist. Behalte das im Hinterkopf!
>Sie müssten myStory.Remove (this) vor dem Aufruf von myStory.Begin (this) ausführen, damit es von vorne beginnt. Dies liegt daran, dass das Aufrufen von Storyboard :: Stop die Animationsuhren stoppt, sie aber intakt lässt. Ein nachfolgender Aufruf von Begin wird einfach als Lebenslauf fungieren. Ich stimme zu, dass dies etwas kontraintuitiv ist, wenn Sie jedoch die Dokumentation lesen ClockController :: Stop , Sie werden folgendes in den Bemerkungen sehen:
Diese Methode ändert die Zieluhr CurrentState bis Stopped.
Eine gestoppte Uhr kann durch gestartet werden Verwenden von Begin, Seek oder SeekAlignedToLastTick-Methode.
Sorry Scott, ich habe nicht aufgepasst. Hast du versucht, das FillBehavior auf dem Storyboard zu setzen? Setzen Sie FillBehavior auf Stop setzt die Animation zurück. Nicht sicher, warum Stop es nicht tut ...
Weitere Details können sein:
this.MyAnimation.FillBehavior = FillBehavior.Stop;
Tags und Links wpf storyboard