InteractionTrackerInertiaMotion Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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) |