Neustart eines WPF-Storyboards

8

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.

    
ScottCate 07.05.2009, 00:50
quelle

5 Antworten

8

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!

Storyboard.Seek-Methode

>     
Rob 07.05.2009, 20:57
quelle
3

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.

    
Drew Marsh 07.05.2009 01:06
quelle
0

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 ...

    
Michael Brown 26.05.2009 20:23
quelle
0
%Vor%

%Vor%

Erstellen Sie dann ein neues Storyboard

%Vor%

Das Storyboard "storyboard_name" wird gestartet.

Wenn Sie das Storyboard anhalten wollen. Versuchen Sie es bitte so

%Vor%

Wenn Sie das Storyboard entfernen möchten. Versuchen Sie es wie folgt

%Vor%     
Chandru A 04.06.2012 04:22
quelle
-1

Weitere Details können sein:

this.MyAnimation.FillBehavior = FillBehavior.Stop;

    
JxDarkAngel 21.01.2014 19:13
quelle

Tags und Links