Freigeben über


InteractionTrackerInertiaMotion Klasse

Definition

Eine ExpressionAnimation , die die Bewegung von InteractionTracker während des Inertia-Zustands definiert.

Die InteractionTrackerMotion-Klasse enthält zwei ExpressionAnimations, die eine zweite abgeleitete Gleichung der Position darstellen, die InteractionTracker verwendet, um die Bewegung vom Anfang bis zum Ende der Inertia zu definieren, wenn eine bestimmte Bedingung erfüllt ist. Die InteractionTrackerMotion-Klasse ist aus zwei Teilen definiert: Die bedingte Anweisung, um zu definieren, wann die Bewegung stattfindet, und die Gleichung, die die Bewegung beschreibt, wie InteractionTracker seine letzte Ruheposition erreicht. Verwenden Sie die InteractionTrackerInertiaMotion-Klasse, wenn Sie eine angepasste Bewegung (z. B. eine Federbewegung) für InteractionTracker definieren müssen, die verwendet werden soll, wenn sie sich in seinem Inertia-Zustand befindet.

public ref class InteractionTrackerInertiaMotion sealed : InteractionTrackerInertiaModifier
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class InteractionTrackerInertiaMotion final : InteractionTrackerInertiaModifier
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class InteractionTrackerInertiaMotion : InteractionTrackerInertiaModifier
Public NotInheritable Class InteractionTrackerInertiaMotion
Inherits InteractionTrackerInertiaModifier
Vererbung
Object Platform::Object IInspectable CompositionObject InteractionTrackerInertiaModifier InteractionTrackerInertiaMotion
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 Anniversary Edition (eingeführt in 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v3.0)

Beispiele

void CustomSpringInertiaMotion(float dampingCoefficient, 	float springStiffnessCoefficient)
{
  //
  // Set up our inertia modifiers to use our custom motion
  //
  InteractionTrackerInertiaMotion[] modifiers = 
  new InteractionTrackerInertiaMotion[1];

  var modifier1 = InteractionTrackerInertiaMotion.Create(_compositor);

  /*
  We create a custom spring motion for when the InteractionTracker passes the
  maximum boundary. 
  When we hit the boundary, the amount of oscillation is determined by the 	distance to the far end point, the spring stiffness and damping rate.
  */ 

  // Define the condition that the spring motion gets applied – when we pass the
  // maximum boundary
  modifier1.Condition = _compositor.CreateExpressionAnimation(
  "this.Target.NaturalRestingPosition.X > this.Target.MaxPosition.X");

  // Define the second derivative equation as a custom spring force motion
  // Equation = kx–cv where (k is spring constant, c is damping, x is displacement)
  modifier1.Motion = _compositor.CreateExpressionAnimation(
    "(-springStiffnessCoefficient * (this.Target.Position.X – this.Target.MaxPosition.X)) + " +
    "(-dampingCoefficient * target.PositionVelocityInPixelsPerSecond.X");

  modifier1.Motion.SetScalarParameter("springStiffnessCoefficient", springStiffnessCoefficient);
  modifier1.Motion.SetScalarParameter("dampingCoefficient", dampingCoefficient);

  modifiers[0] = modifier1;

  // Attach InertiaModifiers to the Y position component of InteractionTracker
  _tracker.ConfigurePositionYInertiaModifiers(modifiers);
}

Hinweise

Beim Erstellen der ExpressionAnimation für die Bewegungskomponente von InteractionTrackerInertiaMotion wird der Ausdruck als zweite abgeleitete Gleichung beschrieben. Im obigen Codeausschnitt verwenden wir z. B. die Basisgleichung für Spring Force-Bewegung mit Dämpfung.

Wenn Sie den InteractionTrackerInertiaMotion-Modifizierer an den InteractionTracker anfügen, konfigurieren Sie ihn entweder für die X/Y-Position oder die Skalierung.

Die ExpressionAnimation, die die Bedingungseigenschaft definiert, wird nur einmal ausgewertet, wenn InteractionTracker in "Inertia" eintritt (auch bekannt, wenn die Interaktion abgeschlossen ist, z. B. finger losgelassen). Wenn die Bedingung als true ausgewertet wird, wird der InertiaMotion-Ausdruck jeden Frame für den Rest von Inertia ausgewertet, auch wenn der Bedingungsausdruck technisch nicht mehr wahr ist.

InteractionTrackerInertiaMotion-Modifizierer ändern die Gleichung, die InteractionTracker zum Berechnen der Position verwendet. Somit wird die letzte Ruheposition durch die Natur der Gleichung selbst bestimmt. Wenn InteractionTracker an einem bestimmten Ort angehalten werden soll, verwenden Sie den InteractionTrackerInertiaRestingValue-Modifizierer .

Eigenschaften

Comment

Eine Zeichenfolge, die dem CompositionObject zugeordnet werden soll.

(Geerbt von CompositionObject)
Compositor

Der Compositor , der zum Erstellen dieses CompositionObject verwendet wird.

(Geerbt von CompositionObject)
Condition

Eine ExpressionAnimation , die beschreibt, wann der Modifizierer angewendet werden soll.

Die Condition-Eigenschaft ist eine ExpressionAnimation , die definiert, wann die angegebene Bewegungsgleichung während der Inertia von InteractionTracker verwendet wird. Dieser Ausdruck wird einmal ausgewertet, nachdem die Interaktion aufgetreten ist, und muss in einen Bool-Typ aufgelöst werden. Andernfalls wird bei der Auswertung der Bedingung ein Fehler ausgelöst. Weitere Informationen zum Erstellen von Ausdrücken finden Sie auf der Seite expressionAnimation-Klasse .

Dispatcher

Der Verteiler für das CompositionObject.

(Geerbt von CompositionObject)
DispatcherQueue

Ruft die DispatcherQueue für das CompostionObject ab.

(Geerbt von CompositionObject)
ImplicitAnimations

Die Auflistung impliziter Animationen, die an dieses Objekt angefügt sind.

(Geerbt von CompositionObject)
Motion

Eine ExpressionAnimation, die die geänderte Bewegung für InteractionTracker beschreibt, wenn der Ausdruck in der Condition-Eigenschaft true ist.

Die Motion-Eigenschaft ist eine ExpressionAnimation , die die Bewegung beschreibt, die InteractionTracker während der Inertia verwendet, wenn die entsprechende Bedingung erfüllt ist. Der Ausdruck wird in jedem Frame ausgewertet, während InteractionTracker sich in Inertia befindet, und muss in den Typ Float aufgelöst werden. Andernfalls wird bei der Auswertung der Gleichung ein Fehler ausgelöst. Weitere Informationen zum Erstellen von Ausdrücken finden Sie auf der Seite expressionAnimation-Klasse .

Properties

Die Auflistung der Eigenschaften, die dem CompositionObject zugeordnet sind.

(Geerbt von CompositionObject)

Methoden

Close()

Schließt das CompositionObject und gibt Systemressourcen frei.

(Geerbt von CompositionObject)
ConnectAnimation(String, CompositionAnimation)

Verbindet und Animation.

(Geerbt von CompositionObject)
Create(Compositor)

Erstellt eine instance von InteractionTrackerInertiaMotion.

DisconnectAnimation(String)

Trennt eine Animation.

(Geerbt von CompositionObject)
Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

(Geerbt von CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Definiert eine Eigenschaft, die animiert werden kann.

(Geerbt von CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Verbindet eine Animation mit der angegebenen Eigenschaft des Objekts und startet die Animation.

(Geerbt von CompositionObject)
StartAnimation(String, CompositionAnimation)

Verbindet eine Animation mit der angegebenen Eigenschaft des Objekts und startet die Animation.

(Geerbt von CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Startet eine Animationsgruppe.

Mit der StartAnimationGroup-Methode für CompositionObject können Sie CompositionAnimationGroup starten. Alle Animationen in der Gruppe werden gleichzeitig für das Objekt gestartet.

(Geerbt von CompositionObject)
StopAnimation(String)

Trennt eine Animation von der angegebenen Eigenschaft und beendet die Animation.

(Geerbt von CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Beendet eine Animationsgruppe.

(Geerbt von CompositionObject)
TryGetAnimationController(String)

Gibt einen AnimationController für die Animation zurück, die für die angegebene Eigenschaft ausgeführt wird.

(Geerbt von CompositionObject)

Gilt für:

Weitere Informationen