Freigeben über


InteractionTracker.TryUpdatePositionWithAnimation Methode

Definition

Versucht, die Position des InteractionTrackers durch Anwenden einer Animation zu aktualisieren.

Die TryUpdatePositionWithAnimation-Methode aktualisiert die Position von InteractionTracker basierend auf der CompositionAnimation-Eingabe als Parameter. Diese Methode wird in Situationen verwendet, in denen die Bewegung von InteractionTracker durch eine bestimmte Animation anstelle der herkömmlichen Inertia-Erfahrung definiert werden muss. TryUpdatePositionWithAnimation kann über den Leerlauf- oder Trägheitszustand aufgerufen werden. Dadurch wird die Position von InteractionTracker von der definierten Animation gesteuert und tritt in den CustomAnimation-Zustand ein.

public:
 virtual int TryUpdatePositionWithAnimation(CompositionAnimation ^ animation) = TryUpdatePositionWithAnimation;
int TryUpdatePositionWithAnimation(CompositionAnimation const& animation);
public int TryUpdatePositionWithAnimation(CompositionAnimation animation);
function tryUpdatePositionWithAnimation(animation)
Public Function TryUpdatePositionWithAnimation (animation As CompositionAnimation) As Integer

Parameter

animation
CompositionAnimation

Die Animation, die auf den InteractionTracker angewendet werden soll.

Gibt zurück

Int32

int

Gibt die Anforderungs-ID zurück. Bei Zustandsübergängen wird die Anforderung, die die Zustandsänderung verursacht hat, in die Argumente einbezogen. Diese IDs beginnen bei 1 und erhöhen sich mit jedem Try-Aufruf während der Lebensdauer der Anwendung.

Beispiele

void CustomAnimationForIT(Vector3 newPosition)
{
  // Create a cubic bezier easing function that will be used in the KeyFrames
  CompositionEasingFunction cubicBezier = _compositor.CreateCubicBezierEasingFunction(new Vector2(.17f, .67f), new Vector2(1f, 1f);

  // Create the Vector3 KFA
  Vector3KeyFrameAnimation kfa = _compositor.CreateVector3KeyFrameAnimation();
  kfa.Duration = TimeSpan.FromSeconds(3);

  // Create the KeyFrames
  kfa.InsertKeyFrame(1.0f, newPosition, cubicBezier);

  // Update InteractionTracker position using this animation
  _tracker.TryUpdatePositionWithAnimation(kfa);
}

Hinweise

Beim Erstellen der Animation, mit der Sie die Position von InteractionTracker aktualisieren möchten, müssen Sie Microsoft.UI.Composition.CompositionObject.StartAnimation nicht aufrufen. Das System übernimmt dies im Hintergrund, sobald die Animation über TryUpdatePositionWithAnimation übergeben wird.

Wenn Sie die Animation definieren, die die Position von InteractionTracker animiert, müssen Sie entweder eine Vector3KeyFrameAnimation oder eine ExpressionAnimation verwenden, die in vector3 aufgelöst wird.

Die folgende Tabelle fasst das erwartete Verhalten zusammen, wenn diese Methode in einem bestimmten Zustand aufgerufen wird:

Aktueller ZustandErgebnis
IdleAngeforderte Animation beginnt mit der angeforderten Eigenschaft, Zustandsänderungen in CustomAnimation
InteraktionAnforderung ignoriert
TrägheitAngeforderte Animation beginnt mit der angeforderten Eigenschaft, Zustandsänderungen in CustomAnimation
CustomAnimationDie aktuelle Animation wird beendet, und die neue angeforderte Animation wird mit der angeforderten Eigenschaft gestartet, der Zustand wird erneut in CustomAnimation eingegeben.

Gilt für: