Freigeben über


InteractionTracker.TryUpdateScaleWithAnimation Methode

Definition

Versucht, die Skalierung mit der angegebenen Animation zu aktualisieren.

Die TryUpdateScaleWithAnimation-Methode aktualisiert die Skalierungsposition von InteractionTracker basierend auf der als Parameter eingegebenen CompositionAnimation . Diese Methode wird in Situationen verwendet, in denen die Bewegung von InteractionTracker durch eine bestimmte Animation definiert werden muss, anstatt durch die herkömmliche Inertia-Erfahrung. TryUpdateScaleWithAnimation kann aus dem Leerlauf- oder Trägheitszustand aufgerufen werden. Dadurch wird die Position von InteractionTracker von der definierten Animation gesteuert und wechselt in den CustomAnimation-Zustand.

public:
 virtual int TryUpdateScaleWithAnimation(CompositionAnimation ^ animation, float3 centerPoint) = TryUpdateScaleWithAnimation;
int TryUpdateScaleWithAnimation(CompositionAnimation const& animation, float3 const& centerPoint);
public int TryUpdateScaleWithAnimation(CompositionAnimation animation, Vector3 centerPoint);
function tryUpdateScaleWithAnimation(animation, centerPoint)
Public Function TryUpdateScaleWithAnimation (animation As CompositionAnimation, centerPoint As Vector3) As Integer

Parameter

animation
CompositionAnimation

Die Animation, die auf die Skalierung angewendet werden soll.

centerPoint
Vector3 Vector3

float3

Der neue Mittelpunkt.

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 eingeschlossen. Diese IDs beginnen bei 1 und erhöhen sich mit jedem Try-Aufruf während der Lebensdauer der Anwendung.

Beispiele

void CustomAnimationForIT(float newScale, Vector3 newCenterPoint)
{
  // 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
  ScalarKeyFrameAnimation kfa = _compositor.CreateScalarKeyFrameAnimation();
  kfa.Duration = TimeSpan.FromSeconds(3);

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

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

Hinweise

Wenn Sie die Animation erstellen, mit der Sie die Position von InteractionTracker aktualisieren möchten, müssen Sie StartAnimation nicht aufrufen. Das System übernimmt dies im Hintergrund, sobald die Animation über TryUpdateScaleWithAnimation übergeben wird.

Wenn Sie die Animation definieren, die die Skalierungsposition von InteractionTracker animiert, müssen Sie entweder eine ScalarKeyFrameAnimation oder eine ExpressionAnimation verwenden, die in einen Skalar 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 bei der angeforderten Eigenschaft gestartet, der Zustand wechselt erneut in CustomAnimation.

Gilt für: