Freigeben über


VisualInteractionSource Klasse

Definition

Objekt zum Konfigurieren von Eingaben für den InteractionTracker relativ zu einem Visual.

VisualInteractionSource ist nur für die Verwendung mit InteractionTracker konzipiert und definiert, welche Eingabe an den InteractionTracker gesendet wird, um seinen Zustand und seine Eigenschaften zu steuern. Diese Klasse enthält sowohl das Visual, das für Treffertests verwendet werden soll, als auch eine Vielzahl von Konfigurationseigenschaften, für die Gesten und Eingabetypen an den InteractionTracker gesendet werden.

[WebHostHidden]
public ref class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.LiftedContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[WebHostHidden]
class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
[WebHostHidden]
class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.LiftedContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
public class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
Public Class VisualInteractionSource
Inherits CompositionObject
Implements ICompositionInteractionSource
Vererbung
Object Platform::Object IInspectable CompositionObject VisualInteractionSource
Attribute
Implementiert

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 
  // end 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 axis.
  //

  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

VisualInteractionSource wird verwendet, um wichtige Eigenschaften zu den Arten von Interaktionen zu definieren, die den Zustand und die Eigenschaften von InteractionTracker steuern sollen. Die Quelleigenschaft wird sowohl für Treffertests als auch für den Koordinatenraum für die Gestenerkennung verwendet. Daher ist es wichtig, ein Visual zu verwenden, das während der Manipulation nicht in Bewegung sein wird. Mehrere VisualInteractionSources können demselben InteractionTracker zugeordnet werden, wenn mehrere Treffertestregionen vorhanden sind, aber die häufigsten Fälle erfordern nur eine VisualInteractionSource für einen bestimmten InteractionTracker.

VisualInteractionSource ist die Klasse zum Konfigurieren der Gestentypen, die zum Steuern des InteractionTracker berücksichtigt werden sollten. Position X und Y sind mit horizontalem bzw. vertikalem Schwenken verknüpft. Die Skalierung wird mit einer Pinch-Geste erkannt, die häufig mit Zoomen verbunden ist. Diese drei Quellmodi sind alle für touch- und Precision Touchpad-Eingaben konfigurierbar. Jeder dieser Quellmodi kann mit oder ohne Inertia aktiviert werden:

  • Die Aktivierung der Schwungzeit gibt an, dass die Position oder Skalierung während des Tia-Zustands von der Freigabegeschwindigkeit auf natürliche Weise interpoliert.

  • Die Deaktivierung der Tia bedeutet, dass die Positions- oder Skalierungsgeschwindigkeit nach Abschluss der Interaktion sofort auf 0 wechselt. Wenn eingaben, die die Position oder Skalierung an den InteractionTracker weiterleiten, wird die InteractionTracker-Eigenschaft desselben Namens entsprechend aktualisiert.

Die Schienenkonfigurationen geben an, wie die Geste erkannt wird. Rails ist standardmäßig aktiviert und gibt an, dass die horizontale oder vertikale Verschiebung an einer bestimmten Achse gesperrt wird, wenn sie hauptsächlich auf dieser Achse gestartet wird. Dies wird auf den Geländereigenschaftenseiten ausführlicher erläutert.

Die Verkettungskonfiguration gibt an, ob Eingaben, die von einer VisualInteractionSource verarbeitet werden, an eine andere Entität fließen können, wenn der InteractionTracker die min oder max in diese Richtung erreicht. Mit dieser Konfiguration können Eingaben entweder mit einem anderen InteractionTracker über eine andere VisualInteractionSource oder mit einem ScrollViewer verkettet werden, wenn das Quellvisual von VisualInteractionSource ein untergeordnetes Element des ScrollViewer ist.

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

Die Menge der Positionsänderung, die während des bevorstehenden Frames angewendet werden soll. Der Standardwert ist 0. Nur über Ausdruck/Animation lesbar.

DeltaScale

Die Menge der Skalierungsänderungen, die während des bevorstehenden Frames angewendet werden sollen. Multiplikative. Der Standardwert lautet 1. Nur über Ausdruck/Animation lesbar.

DispatcherQueue

Ruft den DispatcherQueue für das CompositionObject ab.

(Geerbt von CompositionObject)
ImplicitAnimations

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

(Geerbt von CompositionObject)
IsPositionXRailsEnabled

Gibt an, ob das Schwenken auf der x-Achse gegittert ist.

Die IsPositionXRailsEnabled-Eigenschaft definiert die Geländerkonfiguration für den Zeitpunkt, wenn die X-Achsen-Verschiebung an den entsprechenden InteractionTracker gesendet wird. Wenn der anfängliche Teil des Schwenks relativ zur X-Achse in einem bestimmten Bereich abgewinkelt ist, wird die Y-Komponente des Schwenks ignoriert und als perfekte horizontale Schwenkung betrachtet. Diese Eigenschaft wird häufig in Situationen aktiviert, in denen sowohl ein X- als auch ein Y-Bildlauf aktiviert ist, aber auch eine zuverlässige, perfekte horizontale Verschiebung erfordert.

IsPositionYRailsEnabled

Gibt an, ob das Schwenken auf der y-Achse gegittert ist.

Die IsPositionYRailsEnabled-Eigenschaft definiert die Geländerkonfiguration, wenn die Y-Achsen-Verschiebung an den entsprechenden InteractionTracker gesendet wird. Wenn der anfängliche Teil des Schwenks in einem bestimmten Bereich relativ zur Y-Achse abgewinkelt ist, wird die X-Komponente des Schwenks ignoriert und als perfekte vertikale Schwenkung betrachtet. Diese Eigenschaft wird häufig in Situationen aktiviert, in denen sowohl ein X- als auch ein Y-Bildlauf aktiviert ist, aber auch zuverlässiges, perfektes vertikales Schwenken erfordert.

ManipulationRedirectionMode

Gibt an, welche Eingabe an den InteractionTracker umgeleitet werden soll.

PointerWheelConfig

Ruft die Konfiguration für die Zeigerradeingabe ab.

Position

Die Gesamtzahl der Positionsänderungen seit Beginn der Interaktion. Der Standardwert ist 0. Nur über Ausdruck/Animation lesbar.

PositionVelocity

Die sofortige Änderungsrate der Position in der Interaktion in Pixeln pro Sekunde. Der Standardwert ist 0. Schreibgeschützt über Ausdruck/Animation.

PositionXChainingMode

Die PositionXChainingMode-Eigenschaft definiert das Verkettungsverhalten für eine InteractionSource in X-Richtung. Es gibt drei InteractionChainingMode-Typen :

  • Automatisch
  • Always
  • Never

Wenn die Verkettung in X-Richtung aktiviert ist, wird die Eingabe an die VisualInteractionSource des nächsten Vorgängers übertragen, wenn die Interaktion (z. B. verschieben) andernfalls die Position von InteractionTracker über die minimale oder maximale X-Position hinausnimmt.

PositionXSourceMode

Quellmodus für die X-Achse.

Die PositionXSourceMode-Eigenschaft definiert, wie Interaktionen für eine VisualInteractionSource auf der X-Achse verarbeitet werden. Es stehen drei InteractionSourceMode-Typen zur Auswahl:

  • Interaktionen sind deaktiviert.
  • EnabledWithInertia
  • EnabledWithoutInertia

Diese Eigenschaft muss aktiviert sein, damit VisualInteractionSource X-Achsendaten an InteractionTracker senden kann.

PositionYChainingMode

Die PositionYChainingMode-Eigenschaft definiert das Verkettungsverhalten für eine InteractionSource in Y-Richtung. Es gibt drei Typen von InteractionChainingModes : Auto , Always , Never . Wenn die Verkettung in Y-Richtung aktiviert ist, wird die Eingabe an die VisualInteractionSource des nächsten Vorgängers übertragen, wenn die Interaktion (z. B. schwenken) andernfalls die Position von InteractionTracker über die minimale oder maximale Y-Position hinausnimmt.

PositionYSourceMode

Quellmodus für die Y-Achse.

Die PositionYSourceMode-Eigenschaft definiert, wie Interaktionen für eine VisualInteractionSource auf der Y-Achse verarbeitet werden. Es stehen drei InteractionSourceMode-Typen zur Auswahl:

  • Interaktionen sind deaktiviert.
  • EnabledWithInertia
  • EnabledWithoutInertia

Diese Eigenschaft muss aktiviert sein, damit VisualInteractionSource Y-Achsendaten an InteractionTracker senden kann.

Properties

Die Auflistung von Eigenschaften, die dem CompositionObject zugeordnet sind.

(Geerbt von CompositionObject)
Scale

Die gesamte prozentuale Skalierungsdifferenz seit Beginn der Interaktion. Multiplikative. Der Standardwert lautet 1. Nur über Ausdruck/Animation lesbar.

ScaleChainingMode

Die ScaleChainingMode-Eigenschaft definiert das Verkettungsverhalten für eine InteractionSource in Skalierungsrichtung. Es gibt drei Arten von InteractionChainingModes : Auto, Always, Never. Wenn die Skalierungskette aktiviert ist, wird die Eingabe an die VisualInteractionSource des nächsten Vorgängers übertragen, wenn die Interaktion (z. B. verschieben) andernfalls die Position von InteractionTracker über die minimale oder maximale Skalierungsposition hinausnimmt.

ScaleSourceMode

Definiert, wie Interaktionen für eine VisualInteractionSource auf der Skalierungsachse verarbeitet werden. Es stehen drei InteractionSourceMode-Typen zur Auswahl:

  • Deaktiviert
  • EnabledWithInertia
  • EnabledWithoutInertia

Diese Eigenschaft muss aktiviert sein, damit VisualInteractionSource Skalierungsdaten an InteractionTracker senden kann.

ScaleVelocity

Die sofortige Änderungsrate der Skalierung in der Interaktion in Prozent pro Sekunde. Additiv. Der Standardwert ist 0. Schreibgeschützt über Ausdruck/Animation.

Source

Das Visual, das für Treffertests verwendet wird und den Koordinatenraum für die Gestenerkennung definiert.

Methoden

Close()

Schließt das CompositionObject und gibt Systemressourcen frei.

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

Verwendet eine sortierte Liste von CompositionConditionalValue. In einem Frame hat die erste CompositionConditionalValue den Wert ". Condition" "evaluate to true" ersetzt den Zoom-CenterPointX-Wert, den die VisualInteractionSource mit seinem "bereitstellt. Wert". Wenn keines auf true ausgewertet wird, wird der CenterPointX-Frame nicht ersetzt.

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

Verwendet eine sortierte Liste von CompositionConditionalValue. In einem Frame hat die erste CompositionConditionalValue den Wert ". Bedingung" mit "wert" ersetzt den Zoom-CenterPointY-Wert, den VisualInteractionSource mit seinem "bereitstellt. Wert". Wenn keine auf true ausgewertet wird, wird der CenterPointY-Frame nicht ersetzt.

ConfigureDeltaPositionXModifiers(IIterable<CompositionConditionalValue>)

Verwendet eine sortierte Liste von CompositionConditionalValue. In einem Frame hat die erste CompositionConditionalValue den Wert ". Condition" in "evaluate to true" ersetzt den DeltaPositionX-Wert, den VisualInteractionSource mit seinem "bereitstellt. Wert". Wenn keines auf true ausgewertet wird, wird der DeltaPositionX-Frame nicht ersetzt.

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

Verwendet eine sortierte Liste von CompositionConditionalValue. In einem Frame hat die erste CompositionConditionalValue den Wert ". Condition" in "evaluate to true" ersetzt den DeltaPositionY-Wert, den visualInteractionSource mit seinem "bereitstellt. Wert". Wenn keines auf true ausgewertet wird, wird der DeltaPositionY-Frame nicht ersetzt.

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

Verwendet eine sortierte Liste von CompositionConditionalValue. In einem Frame hat die erste CompositionConditionalValue den Wert ". Condition" in "evaluate to true" ersetzt den DeltaScale-Wert, den VisualInteractionSource mit seinem "bereitstellt. Wert". Wenn keine auf true ausgewertet wird, wird der DeltaScale-Frame nicht ersetzt.

Create(Visual)

Erstellt eine instance von VisualInteractionSource.

CreateFromIVisualElement(IVisualElement)

Erstellt eine instance von VisualInteractionSource aus einem Element, das IVisualElement implementiert.

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)

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)
TryRedirectForManipulation(ExpPointerPoint)

Objekt zum Konfigurieren von Eingaben für den InteractionTracker relativ zu einem Visual.

VisualInteractionSource ist nur für die Verwendung mit InteractionTracker konzipiert und definiert, welche Eingabe an den InteractionTracker gesendet wird, um seinen Zustand und seine Eigenschaften zu steuern. Diese Klasse enthält sowohl das Visual, das für Treffertests verwendet werden soll, als auch eine Vielzahl von Konfigurationseigenschaften, für die Gesten und Eingabetypen an den InteractionTracker gesendet werden.

TryRedirectForManipulation(PointerPoint)

Versucht, konfigurierte Bearbeitungen für den angegebenen Zeigerdatenstrom ab dem angegebenen PointerPoint an den InteractionTracker und nicht an den UI-Thread der App zu senden.

Wichtig

Diese Methode sollte nur mit einem PointerDeviceType of Touch aufgerufen werden.

Gilt für:

Weitere Informationen