2012-04-03 4 views
0

Ich habe die folgende AnimationWie kann ich die AxisAngleRotation3D-Animation im Code deaktivieren? wpf

AxisAngleRotation3D rotation = (AxisAngleRotation3D)Template.FindName(rotationName, this); 
     DoubleAnimation angleAnimation = new DoubleAnimation(); 
     angleAnimation.From = 0.0d; 
     angleAnimation.To = _currentAngle; 
     angleAnimation.Duration = new Duration(new TimeSpan(0, 0,3);   


        rotation.BeginAnimation(AxisAngleRotation3D.AngleProperty, angleAnimation); 

Gibt es eine Möglichkeit sofort zum Ende der Animation zu überspringen, dass effektiv zu entfernen die Animation einmal beginne ich es Beginanimation mit() aufrufen? Danke!

Antwort

0

Sie können die aktuelle Animation wieder entfernen durch den Aufruf, mit null:

rotation.BeginAnimation(AxisAngleRotation3D.AngleProperty, null); 

verwenden, die in dem Fall, dass Sie die Animation für gewisse Zeit zeigen müssen, und beendet es früh (oder dafür sorgen, dass es wurde gestoppt, bevor eine andere Animation angewendet wurde).

Wenn Sie jedoch nur versuchen, Ihr UIElement zu drehen, ohne eine Animation anzuzeigen, dann verwenden Sie überhaupt keine Animation - legen Sie einfach die Eigenschaft direkt fest.

+0

Das funktioniert ... also habe ich es als eine Antwort markiert ... aber Theres eine leichte Verzögerung..ich bin mir nicht sicher, wie zu vermeiden ... SkipTofill() -Methode vermeidet, dass Lag oder nervös Aussehen am Anfang. ..Irgendwelche Ideen? – user1202434

+0

@ user1202434 Genau wie ein Update, versuche ich ein Projekt einzurichten, um dein Lag-Problem zu reproduzieren. Haben Sie versucht, ein Storyboard einzurichten und die Animation dort zu steuern, anstatt durch BeginAnimation auf dem UIElement? Sie fragen sich, ob das ein anderes Verhalten haben wird. –

Verwandte Themen