InteractionTracker Klasse

Definition

Verarbeitet die Logik der Eingabe, die als Ziele in ExpressionAnimations verwendet werden kann– in der Regel, um die Bewegung von Visuals basierend auf der Eingabe zu steuern.

public ref class InteractionTracker sealed : CompositionObject
/// [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 InteractionTracker final : CompositionObject
[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 InteractionTracker : CompositionObject
Public NotInheritable Class InteractionTracker
Inherits CompositionObject
Vererbung
Object Platform::Object IInspectable CompositionObject InteractionTracker
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 SetupSimpleInteractionTracker(Visual viewportVisual, Visual contentVisual)
{
  //
  // Create the InteractionTracker and set its min/max position and scale.  These could 
  // also be bound to expressions.  Note: The scrollable area can be changed from either 
  // the min or the max position to facilitate content updates/virtualization.
  //

  _tracker = InteractionTracker.Create(_compositor);

  _tracker.MaxPosition = new Vector3(
    contentVisual.Size.X - viewportVisual.Size.X,
    contentVisual.Size.Y - viewportVisual.Size.Y,
    0.0f);

  _tracker.MinScale = 0.5f;
  _tracker.MaxScale = 4.0f;


  //
  // Configure the interaction source.  Enable input with inertia on all axes.
  //

  var interactionSource = VisualInteractionSource.Create(viewportVisual);

  interactionSource.PositionXSourceMode = InteractionSourceMode.EnabledWithInertia;
  interactionSource.PositionYSourceMode = InteractionSourceMode.EnabledWithInertia;
  interactionSource.ScaleSourceMode = InteractionSourceMode.EnabledWithInertia;

  _tracker.InteractionSources.Add(interactionSource);


  //
  // Bind the InteractionTracker outputs to the contentVisual.
  //

  var positionExpression = _compositor.CreateExpressionAnimation("-tracker.Position");
  positionExpression.SetReferenceParameter("tracker", _tracker);

  contentVisual.StartAnimation("Offset", positionExpression);


  var scaleExpression = _compositor.CreateExpressionAnimation("Vector3(tracker.Scale, tracker.Scale, 1.0)");

  scaleExpression.SetReferenceParameter("tracker", _tracker);

  contentVisual.StartAnimation("Scale", scaleExpression);
}


Hinweise

InteractionTracker ist ein Zustandscomputer, der durch aktive Eingaben oder durch explizite Aufrufe zum Aktualisieren oder Animieren der Eigenschaften gesteuert werden kann. Die InteractionTracker-Klasse soll eingaben ermöglichen, um CompositionAnimations für benutzerdefinierte Interaktionserfahrungen zu steuern. Um interaktive Erfahrungen zu erstellen, ist es erforderlich, dem InteractionTracker eine oder mehrere VisualInteractionSourceszuzuordnen.

Häufige Szenarios

IneractionTracker ist für folgende Zwecke vorgesehen:

  • Hinzufügen eines benutzerdefinierten Wischverhaltens, z. B. Wischen von ListView-Elementen oder anderen Visuals zum Löschen/Schließen
  • Übergänge, die an die Verschiebung gebunden sind, z. B. Wischen zwischen dem Zustand "geschlossen" und "Offen"
  • Eingabegesteuerte Animation eines Effekts, z. B. Verschieben, bewirkt, dass der Bildschirm weich wird
  • Benutzerdefinierte Steuerelemente, z. B. das Erstellen einer benutzerdefinierten Implementierung eines ScrollViewer mit unterschiedlichen Schwenkgeschwindigkeiten oder die Möglichkeit, programmgesteuert gesteuert zu werden

InteractionTracker-Zustände und -Übergänge

Der InteractionTracker ist ein Zustandscomputer mit vier Zuständen:

  • Leerlauf: Keine aktiven Eingaben oder Animationen, die den InteractionTracker steuern
  • Interagieren: Aktive Benutzereingaben treiben den InteractionTracker an.
  • Inertia: Aktive Animationen, die ein Ergebnis von aktiver Eingabe oder programmgesteuerter Geschwindigkeit sind, treiben den InteractionTracker an.
  • CustomAnimation: Eine Eigenschaft des InteractionTracker wird direkt animiert Das folgende Diagramm zeigt diese vier Zustände und welche Zustandsübergänge gültig sind.
InteractionTracker-Zustände: Leerlauf, Inertia, Interacting und Custom Animation

Zustandsübergänge können durch Benutzeraktionen (z. B. das Starten oder Beenden einer Manipulation) oder durch explizite Aufrufe von Methoden auf dem InteractionTracker auftreten. Jedes Mal, wenn einer dieser expliziten Aufrufe erfolgt, wird eine requestID ausgegeben, um nachzuverfolgen, ob die Anforderung ignoriert wird oder eine Zustandsänderung verursacht.

Wichtig zu beachten ist, dass InteractionTracker in einem anderen Prozess ausgeführt wird als die Anwendung, die es verwendet. Daher sind alle Methodenaufrufe für InteractionTracker und die zugehörigen Klassen asynchron, ebenso wie die Rückrufe, die über die IInteractionTrackerOwner-Schnittstelle ausgegeben werden.

Im Folgenden wird beschrieben, was jede Zustandsänderung auslöst:

StartzustandEndzustandMögliche Trigger
IdleInteraktionDieser Zustandsübergang erfolgt nur, wenn eine Benutzerbearbeitung ausgeführt wird, die einer VisualInteractionSource entspricht, die dem InteractionTracker zugeordnet ist.
IdleTrägheitDieser Zustandsübergang erfolgt nur, wenn interactionTracker sich im Idle-Zustand befindet und TryUpdatePositionWithVelocity oder TryUpdateScaleWithVelocity aufgerufen wird.
IdleCustomAnimationDieser Zustandsübergang erfolgt, wenn InteractionTracker sich im Leerlaufzustand befindet und TryUpdatePositionWithAnimation oder TryUpdateScaleWithAnimation aufgerufen wird.
InteraktionTrägheitDieser Zustandsübergang erfolgt nur, wenn eine Benutzerbearbeitung abgeschlossen ist, die an den InteractionTracker gesendet wurde. Wenn die aktive Eingabe endet, wechselt der InteractionTracker in den Trägheitszustand, und Informationen wie die Freigabegeschwindigkeit des Fingers und die InertiaDecayRate bestimmen das Verhalten während des Trägheitszustands.
TrägheitIdleDieser Zustandsübergang erfolgt, wenn die Zum Aktualisieren der Position und/oder Skalierung verwendeten Funktionen nicht mehr zu Einer Änderung führen. Anders ausgedrückt: Die Positions- und Skalierungsgeschwindigkeit ist auf 0 (null) geschnellt. Dieser Zustandsübergang kann auch auftreten, wenn ein Aufruf zum expliziten Aktualisieren der Position oder Skalierung ohne Animation oder Geschwindigkeit erfolgt. Diese Aufrufe enden mit der Inerträgheit und gehen mit den aktualisierten Eigenschaftswerten in den Leerlauf über.
TrägheitTrägheitDieser Zustandsübergang tritt auf, wenn TryUpdatePositionWithVelocity oder TryUpdateScaleWithVelocity aufgerufen wird, wenn sich bereits der Zustand Inertia befindet. Durch erneutes Eingeben von InertiaStateEntered werden alle InertiaStateEntered-Eigenschaften neu ausgewertet.
TrägheitCustomAnimationDieser Zustandsübergang tritt auf, wenn ein Aufruf von TryUpdatePositionWithAnimation oder TryUpdateScaleWithAnimation während der Inertia-Sate erfolgt.
TrägheitInteraktionDieser Zustandsübergang erfolgt, wenn aktive Eingaben vom Benutzer, der Treffertests zu VisualInteractionSource ausführt, bevor Inertia abgeschlossen ist.
CustomAnimationIdleDieser Zustandsübergang erfolgt, wenn alle Animationen, die für die Position und die Skalierungseigenschaften des InteractionTrackers festgelegt wurden, abgeschlossen sind.
CustomAnimationCustomAnimationDieser Zustandsübergang erfolgt, wenn ein Aufruf von TryUpdatePositionWithAnimation oder TryUpdateScaleWithAnimation erfolgt, während sich bereits der CustomAnimation-Zustand befindet.
CustomAnimationTrägheitDieser Zustandsübergang erfolgt, wenn ein Aufruf von TryUpdatePositionWithVelocity oder TryUpdateScaleWithVelocity im CustomAnimation-Zustand erfolgt.
CustomAnimationInteraktionDieser Zustandsübergang erfolgt, wenn eine Benutzerbearbeitung ausgeführt wird, die Treffertests zu einer VisualInteractionSource ausführt, die dem InteractionTracker zugeordnet ist.

Jeder Zustandsübergang, der vom InteractionTracker vorgenommen wird, erzeugt einen Rückruf, der den neuen Zustand mit Argumenten angibt, die informationen enthalten, die für diesen Zustand relevant sind, sowie die requestID für die Anforderung, die die Zustandsänderung verursacht hat. Aktive Manipulationen durch den Benutzer führen zu einer requestID von 0. Jeder Try*-Aufruf gibt eine requestID aus, die verwendet werden kann, um nachzuverfolgen, welcher Try*-Aufruf die Zustandsänderung verursacht hat. Die erste requestID während der Lebensdauer der Anwendung ist 1, und bei jedem nachfolgenden Aufruf wird die requestID erhöht, was bedeutet, dass jeder eindeutig ist.

Position und Skalierung von InteractionTracker

Die beiden am häufigsten verwendeten Eigenschaften von InteractionTracker sind Position und Skalierung. Bei jeder Änderung einer oder beider Eigenschaften wird der ValuesChanged-Rückruf mit Informationen zu den aktuellen Werten gesendet. Aufgrund der asynchronen Natur von InteractionTracker sind Werte, die über InteractionTracker-Rückrufe empfangen werden, die beste Möglichkeit, die Anwendungslogik auf den aktuellen Zustand und die Werte von InteractionTracker und seinen Eigenschaften zu aktualisieren.

Ein wichtiger Unterschied zum InteractionTracker besteht darin, dass seine Position und Seinskalierung nicht dem Koordinatenraum eines bestimmten Visuellen zugeordnet sind. Zum Zeitpunkt der Erstellung des InteractionTrackers hat seine Position die Unterkanäle x, y und z des Vektors, die auf 0 festgelegt sind, und die Skalierung wird auf 1 festgelegt. Nur aktive Eingaben oder Try*-Aufrufe können dazu führen, dass sich diese Werte ändern. Die minimalen und maximalen Werte für jede Eigenschaft bestimmen den Bereich, in dem Werte schwanken können. Die einzige Ausnahme ist das Konzept von "Overpan" oder "Overzoom", bei dem eine aktive Manipulation dazu führen kann, dass Werte während des Interaktionszustands etwas über das Minimum oder Maximum hinausgehen. Wenn die Bearbeitung abgeschlossen ist, werden die Werte jedoch immer innerhalb des festgelegten Bereichs ruhen. CustomAnimations wird immer innerhalb der für Position und Skalierung festgelegten Bereiche eingespannt.

Das InteractionTracker-Koordinatenraumkonzept richtet sich an das Konzept der Bildschirmkoordinaten aus, sodass eine Nach oben/links-Bewegung den Positionswert erhöht und eine Abwärts-/Rechtsbewegung den Positionswert verringert. Daher ist es sehr üblich, die Position-Eigenschaft beim Anfügen an den Offset eines Visuals zu negieren.

Standardmäßig sind die minimalen und maximalen Positionskanäle alle 0, und die minimalen und maximalen Skalierungswerte sind 1. Wenn das gewünschte Verhalten für eine Eigenschaft darin besteht, dass sie sich außerhalb dieser Anfangswerte ändern kann, müssen die Minimal-/Höchstwerte aktualisiert werden.

InteractionTracker und ExpressionAnimations

InteractionTracker macht eine Vielzahl von Eigenschaften verfügbar, die im Kontext von ExpressionAnimations verwendet werden können, um Updates für animierbare Eigenschaften von CompositionObject s zu steuern. Aufgrund der asynchronen Natur von InteractionTracker wird davon abgeraten, diese Eigenschaften direkt abzufragen. Stattdessen sollten Sie die in Rückrufen bereitgestellten Eigenschaften zum Steuern der Anwendungslogik verwenden und auf die Werte in einer ExpressionAnimation verweisen, um animatable-Eigenschaften zu aktualisieren.

Wie bereits erwähnt, sind die beiden am häufigsten verwendeten Eigenschaften von InteractionTracker die Eigenschaften Position und Skalierung. Dies sind die Eigenschaften, die als Reaktion auf Benutzereingaben und Try*-Aufrufe aktualisiert werden. Wenn Sie diese Eigenschaften in ExpressionAnimations verwenden, werden die animierbaren Eigenschaften von CompositionObjects als Reaktion aktualisiert. Beispielsweise kann die InteractionTracker.position-Eigenschaft an den Offset eines Visuals gebunden sein. Es ist auch üblich, diese Eigenschaften zu verwenden, um ein CompositionPropertySet aufzufüllen, das den Fortschritt nachverfolgt, wodurch wiederum eine Reihe koordinierter Animationen ausgelöst werden kann.

Weiterleiten von Eingaben an den InteractionTracker

Nach der Konfiguration benötigt InteractionTracker noch einen letzten Schritt, um tatsächlich Toucheingaben zu empfangen und zu reagieren. Weitere Informationen finden Sie in der Dokumentation zu VisualInteractionSource. TryRedirectForManipulation enthält weitere Informationen zum Konfigurieren eingehender Eingaben, die in den InteractionTracker fließen.

Versionsverlauf

Windows-Version SDK-Version Mehrwert
1703 15063 ConfigureCenterPointXInertiaModifiers
1703 15063 ConfigureCenterPointYInertiaModifiers
1709 16299 ConfigureVector2PositionInertiaModifiers
1809 17763 IsInertiaFromImpulse
1809 17763 TryUpdatePosition(Vector3,InteractionTrackerClampingOption)
1809 17763 TryUpdatePositionBy(Vector3,InteractionTrackerClampingOption)
1903 18362 GetBindingMode
1903 18362 SetBindingMode
2004 19041 TryUpdatePosition(Vector3,InteractionTrackerClampingOption,InteractionTrackerPositionUpdateOption)

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)
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)
InteractionSources

Eine Auflistung von -Objekten, die Interaktionen generieren.

IsInertiaFromImpulse

Ruft einen Wert ab, der angibt, ob die Unbewegheit das Ergebnis eines Impulses ist.

IsPositionRoundingSuggested

Boolescher Wert, der angibt, ob derzeit eine Positionsrundung vorgeschlagen wird.

MaxPosition

Die maximal zulässige Position für den InteractionTracker.

MaxScale

Die maximale Skalierung für den InteractionTracker.

MinPosition

Die mindest zulässige Position für den InteractionTracker.

MinScale

Die Mindestskala für den InteractionTracker.

NaturalRestingPosition

Natürliche Ruheposition für den InteractionTracker.

Die NaturalRestingPosition-Eigenschaft ist die berechnete Position, an der InteractionTracker ohne Berücksichtigung von Grenzen oder Inertia-Modifizierern anhält. Diese Eigenschaft ist häufig nützlich für Aktionen wie Virtualisierung in einer Bildlaufumgebung, bei der es wichtig ist, den Speicherort zu kennen, an dem InteractionTracker beendet wird. Es gibt zwei Standard Anwendungsfälle für die Verwendung der NaturalRestingPosition-Eigenschaft: Abrufen des aktuellen Werts in den InertiaStateEntered-Ereignisargumenten oder Verweisen auf diese Eigenschaft in einer ExpressionAnimation beim Erstellen von Dingen wie InertiaStateEntered-Modifizierern.

NaturalRestingScale

Natürliche Resting-Skalierung für den InteractionTracker.

Die NaturalRestingScale-Eigenschaft ist die berechnete Skalierungsposition, an der InteractionTracker ohne Berücksichtigung von Grenzen oder Inertia-Modifizierern zum Stillstand kommt. Diese Eigenschaft ist häufig nützlich für Aktionen wie Virtualisierung in einer Bildlaufumgebung, bei der es wichtig ist, den Speicherort zu kennen, an dem InteractionTracker beendet wird. Es gibt zwei Standard Anwendungsfälle für die Verwendung der NaturalRestingScale-Eigenschaft: Abrufen des aktuellen Werts in den InertiaStateEntered-Ereignisargumenten oder Verweisen auf diese Eigenschaft in einer ExpressionAnimation, wenn Dinge wie Inertia-Modifizierer erstellt werden.

Owner

Der IInteractionTrackerOwner , der dem InteractionTracker zugeordnet ist.

Position

Die vom InteractionTracker berechnete Ausgabeposition. Die aktuelle Position ist ein relativer Wert. Während der Status "Idle" und "CustomAnimation" befindet er sich immer zwischen den Werten, die in den Eigenschaften MinPosition und MaxPosition angegeben sind. Die Position-Eigenschaft des InteractionTrackers kann während des Interaktions- und Trägheitszustands außerhalb dieses Bereichs liegen, um an der Grenze eine Unzustellbarkeit oder einen Widerstand anzuzeigen.

Die position-Eigenschaft des InteractionTracker ist ein Vector3, der die Position in der X-, Y- und Z-Achse darstellt. Die Kanäle X und Y sind die einzigen Komponenten, die an diesem Punkt vom InteractionTracker aktualisiert werden. Die Kanäle dieses Vector3-Werts schwanken nicht außerhalb von 0 (standardwert), wenn MinPosition und MaxPosition nicht festgelegt sind.

PositionInertiaDecayRate

Tia-Verfallsrate für Position. Der Bereich reicht von 0 bis 1.

Die PositionInertiaDecayRate-Eigenschaft definiert die Rate, mit der InteractionTracker zu einem Stopp verlangsamt wird, wenn es in die Tia eintritt und sich die Position ändert. Je näher an 1, desto schneller verlangsamt sich InteractionTracker bis zu einem Stopp und umgekehrt. Als Vector3 definiert, stellt jede Komponente die Tia-Verfallsrate für x, y, z entsprechend dar.

PositionVelocityInPixelsPerSecond

Die geschwindigkeit, die derzeit auf die Position angewendet wird.

Die PositionVelocityInPixelsPerSecond-Eigenschaft stellt die aktuelle Positionsgeschwindigkeit von InteractionTracker während in Inertia dar. Es gibt zwei Standard Anwendungsfälle für diese Eigenschaft: Abrufen der Positionsgeschwindigkeit von InteractionTracker direkt nach einer Interaktion oder Verweisen auf die aktuelle Geschwindigkeit von InteractionTracker in einer ExpressionAnimation.

Properties

Die Auflistung der Eigenschaften, die dem CompositionObject zugeordnet sind.

(Geerbt von CompositionObject)
Scale

Die vom InteractionTracker berechnete Ausgabeskalierung. Die aktuelle Skalierung ist ein relativer Wert, der von den in den Eigenschaften MinScale und MaxScale angegebenen Werten abhängt.

Die scale-Eigenschaft des InteractionTracker ist ein Float, der die Skalierung im Koordinatenbereich des InteractionTrackers darstellt. Dieser Wert beginnt bei 1 und erhöht oder verringert sich basierend auf aktiven Eingaben oder direkten Aufrufen zum Aktualisieren oder Animieren der Eigenschaft. Die Skalierungseigenschaft, wenn sich interactionTracker im Idle- oder CustomAnimation-Zustand befindet, ändert sich nicht von 1, es sei denn, die Eigenschaften MinScale und MaxScale , die beide standardmäßig auf 1 festgelegt sind, werden aktualisiert. InteractionTracker Die Skala kann während des Interaktions- und Trägheitszustands etwas außerhalb dieses Bereichs liegen, um an der Grenze einen Sprung oder Einen Widerstand anzuzeigen.

ScaleInertiaDecayRate

Tia-Zerfallsrate, für Skalierung. Der Bereich reicht von 0 bis 1.

Die ScaleInertiaDecayRate-Eigenschaft definiert die Rate, mit der InteractionTracker zu einem Stopp verlangsamt wird, wenn es in die Tia eintritt und sich die Skalierung ändert. Je näher an 1, desto schneller verlangsamt sich InteractionTracker bis zu einem Stopp und umgekehrt. Im Gegensatz zur PositionInertiaDecayRate , die als Vector3 definiert ist, wird ScaleInertiaDecayRate als einzelner Float definiert.

ScaleVelocityInPercentPerSecond

Die Änderungsrate für die Skalierung.

Die ScaleVelocityInPercentPerSecond-Eigenschaft stellt die aktuelle Skalierungsgeschwindigkeit von InteractionTracker in Inertia dar. Erfassen der Positionsgeschwindigkeit von InteractionTracker direkt nach dem Auftreten einer Interaktion oder Verweisen auf die aktuelle Geschwindigkeit von InteractionTracker in einer ExpressionAnimation.

Methoden

AdjustPositionXIfGreaterThanThreshold(Single, Single)

Passt die Position x-Koordinate an, wenn sie den angegebenen Schwellenwert überschreitet.

AdjustPositionYIfGreaterThanThreshold(Single, Single)

Passt die Position y-Koordinate an, wenn sie den angegebenen Schwellenwert überschreitet.

Close()

Schließt das CompositionObject und gibt Systemressourcen frei.

(Geerbt von CompositionObject)
ConfigureCenterPointXInertiaModifiers(IIterable<CompositionConditionalValue>)

Verwendet eine sortierte Liste von CompositionConditionalValue. In einem Frame, während sich der Tracker in Inertia befindet, hat die erste CompositionConditionalValue seine ". Condition" evaluate to true ersetzt den zoom CenterPointX-Wert, den der Tracker verwendet, durch seinen ". Wert". Wenn keine auf true ausgewertet wird, wird der CenterPointX-Frame nicht ersetzt.

ConfigureCenterPointYInertiaModifiers(IIterable<CompositionConditionalValue>)

Verwendet eine sortierte Liste von CompositionConditionalValue. In einem Frame, während sich der Tracker in Inertia befindet, hat die erste CompositionConditionalValue seine ". Bedingung" mit "true" ersetzt den vom Tracker verwendeten Zoom-CenterPointY-Wert durch den Wert ". Wert". Wenn keine auf true ausgewertet wird, wird der CenterPointY-Frame nicht ersetzt.

ConfigurePositionXInertiaModifiers(IIterable<InteractionTrackerInertiaModifier>)

Wendet eine Auflistung von InteractionTrackerInertiaModifier-Objekten auf die x-Inerträgheit eines InteractionTrackers an.

Die ConfigurePositionXInertiaModifiers-Methode wendet eine Einzelperson oder eine Auflistung von InteractionTrackerInertiaModifiers auf die x-Komponente von InteractionTracker an. Das System wertet die einzelnen Bedingungseigenschaften des X-Modifizierers in der Reihenfolge aus, in der sie zu InteractionTracker hinzugefügt wurden. Daher entspricht die Reihenfolge, die der InteractionTrackerInertiaModifier in der Auflistung hat, der Reihenfolge, in der das System ausgewertet wird.

ConfigurePositionYInertiaModifiers(IIterable<InteractionTrackerInertiaModifier>)

Wendet eine Auflistung von InteractionTrackerInertiaModifier-Objekten auf die y-Inerträgheit eines InteractionTrackers an.

Die ConfigurePositionYInertiaModifiers-Methode wendet eine Einzelperson oder eine Auflistung von InteractionTrackerInertiaModifiers auf die y-Komponente von InteractionTracker an. Das System wertet jede Bedingungseigenschaft des Y-Modifizierers in der Reihenfolge aus, in der sie InteractionTracker hinzugefügt wurden. Daher entspricht die Reihenfolge, die der InteractionTrackerInertiaModifier in der Auflistung hat, der Reihenfolge, in der das System ausgewertet wird.

ConfigureScaleInertiaModifiers(IIterable<InteractionTrackerInertiaModifier>)

Wendet eine Auflistung von InteractionTrackerInertiaModifier-Objekten auf die Skalierung eines InteractionTracker an.

Die ConfigureScaleInertiaModifiers-Methode wendet eine Einzelperson oder eine Auflistung von InteractionTrackerInertiaModifiers auf die Skalierungskomponente von InteractionTracker an. Das System wertet jede Bedingungseigenschaft des Scale-Modifizierers in der Reihenfolge aus, in der sie InteractionTracker hinzugefügt wurden. Daher entspricht die Reihenfolge, die der InteractionTrackerInertiaModifier in der Auflistung hat, der Reihenfolge, in der das System ausgewertet wird.

ConfigureVector2PositionInertiaModifiers(IIterable<InteractionTrackerVector2InertiaModifier>)

Wendet eine Auflistung von InteractionTrackerInertiaModifier-Objekten auf die Position eines InteractionTracker an.

ConnectAnimation(String, CompositionAnimation)

Verbindet und Animation.

(Geerbt von CompositionObject)
Create(Compositor)

Erstellt eine instance von InteractionTracker.

Diese Create-Methode instanziieren einen InteractionTracker. Nachdem Sie den InteractionTracker erstellt haben , die Eigenschaften festgelegt haben, eine VisualInteractionSource angefügt und in einer ExpressionAnimation auf Position oder Skalierung verwiesen wird, kann die aktive Eingabe die ExpressionAnimation steuern.

CreateWithOwner(Compositor, IInteractionTrackerOwner)

Erstellt eine instance von InteractionTracker mit dem angegebenen Besitzer.

Diese Create-Methode instanziiert einen InteractionTracker mit einem Besitzer für die Registrierung für Rückrufe. Nachdem Sie den InteractionTracker erstellt haben , die Eigenschaften festgelegt haben, eine VisualInteractionSource angefügt und in einer ExpressionAnimation auf Position oder Skalierung verwiesen wird, kann die aktive Eingabe die ExpressionAnimation steuern. Das Erstellen des InteractionTrackers mit einem Besitzer ist nur erforderlich, wenn die Anwendung Rückrufe zu Status und Werten des InteractionTracker empfangen muss.

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)
GetBindingMode(InteractionTracker, InteractionTracker)

Ruft den Bindungsachsenmodus zwischen zwei Interaktionsnachverfolgungen ab.

PopulatePropertyInfo(String, AnimationPropertyInfo)

Definiert eine Eigenschaft, die animiert werden kann.

(Geerbt von CompositionObject)
SetBindingMode(InteractionTracker, InteractionTracker, InteractionBindingAxisModes)

Legt den Bindungsachsenmodus zwischen zwei Interaktionsnachverfolgungen fest.

StartAnimation(String, CompositionAnimation)

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

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

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)
TryUpdatePosition(Vector3)

Versucht, die Position des InteractionTrackers zu aktualisieren.

Die TryUpdatePosition-Methode aktualisiert den Speicherort von InteractionTracker auf die als Parameter angegebene Vector3-Position. TryUpdatePosition wird verwendet, um die Position von InteractionTracker zu einem beliebigen Zeitpunkt deklarativ zu definieren (entweder zu Beginn, aus einem zustandsgesteuerten Ereignis usw.). TryUpdatePosition kann entweder aus dem Status "Idle", "CustomAnimation" oder "Inertia" aufgerufen werden. Dadurch wird die Position von InteractionTracker an die definierte Position verschoben und in den Leerlaufzustand versetzt.

TryUpdatePosition(Vector3, InteractionTrackerClampingOption)

Versucht, die Position des InteractionTracker mithilfe der angegebenen Spannoption zu aktualisieren.

TryUpdatePosition(Vector3, InteractionTrackerClampingOption, InteractionTrackerPositionUpdateOption)

Versucht, die Position des InteractionTracker mithilfe der angegebenen Spannoption zu aktualisieren.

TryUpdatePositionBy(Vector3)

Versucht, die Position des InteractionTrackers um den angegebenen Betrag anzupassen.

Die TryUpdatePositionBy-Methode aktualisiert den aktuellen Speicherort von InteractionTracker durch das als Parameter angegebene Vector3-Delta. Ähnlich wie TryUpdatePosition wird TryUpdatePositionBy verwendet, um InteractionTracker deklarativ durch ein definiertes Delta zu verschieben, ohne dass eine Animation oder Einträgheit erforderlich ist. TryUpdatePositionBy kann entweder aus dem Zustand "Idle", "CustomAnimation" oder "Inertia" aufgerufen werden. Dadurch wird die Position von InteractionTracker durch das definierte Delta verschoben und in den Leerlaufzustand versetzt.

TryUpdatePositionBy(Vector3, InteractionTrackerClampingOption)

Versucht, die Position des InteractionTrackers mithilfe der angegebenen Spannoption um den angegebenen Betrag anzupassen.

TryUpdatePositionWithAdditionalVelocity(Vector3)

Versucht, die Position des InteractionTrackers durch Hinzufügen der Geschwindigkeit zu aktualisieren.

Die TryUpdatePositionWithAdditionalVelocity-Methode fügt die Eingabe Vector3 hinzu, die zusätzliche Geschwindigkeit zur aktuellen Geschwindigkeit von InteractionTracker darstellt. Da sich die Geschwindigkeit von InteractionTracker nun geändert hat, ändert sich daher die zielorientierte Ruheposition für InteractionTracker . TryUpdatePositionWithAdditionalVelocity kann entweder aus den Status "Idle", "Inertia" oder "CustomAnimation" aufgerufen werden. Dadurch wird entweder die Geschwindigkeit von InteractionTracker hinzugefügt oder aktualisiert und der Zustand "Inertia" eingegeben.

TryUpdatePositionWithAnimation(CompositionAnimation)

Versucht, die Position des InteractionTrackers zu aktualisieren, indem eine Animation angewendet wird.

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 definiert werden muss, anstatt durch die herkömmliche Inertia-Erfahrung. TryUpdatePositionWithAnimation 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.

TryUpdateScale(Single, Vector3)

Versucht, die Skalierung auf den angegebenen Wert zu aktualisieren.

Die TryUpdateScale-Methode aktualisiert die Skalierungsposition von InteractionTracker auf die Skalierungsposition und den Mittelpunkt, die als Parameter angegeben sind. TryUpdateScale wird verwendet, um die Skalierung von InteractionTracker zu einem beliebigen Zeitpunkt deklarativ zu definieren (entweder zu Beginn, aus einem zustandsgesteuerten Ereignis usw.). TryUpdateScale kann entweder aus dem Zustand "Idle", "CustomAnimation" oder "Inertia" aufgerufen werden. Dadurch wird die Skalierungsposition von InteractionTracker an die definierte Position verschoben und in den Leerlaufzustand versetzt.

TryUpdateScaleWithAdditionalVelocity(Single, Vector3)

Versucht, die Skalierung durch Hinzufügen der angegebenen Geschwindigkeit zu aktualisieren.

Die TryUpdateScaleWithAdditionalVelocity-Methode fügt den eingegebenen Skalar hinzu, der zusätzliche Geschwindigkeit darstellt, zur aktuellen Geschwindigkeit von InteractionTracker und verschiebt den Mittelpunkt zum eingegebenen Vector3. Da sich die Geschwindigkeit von InteractionTracker nun geändert hat, ändert sich daher die zielgenaue Restskalierungsposition für InteractionTracker . TryUpdateScaleWithAdditionalVelocity kann entweder aus den Status "Idle", "Inertia" oder "CustomAnimation" aufgerufen werden. Dadurch wird entweder die Geschwindigkeit von InteractionTracker hinzugefügt oder aktualisiert und der Zustand "Inertia" eingegeben.

TryUpdateScaleWithAnimation(CompositionAnimation, Vector3)

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.

Gilt für:

Weitere Informationen