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.

public ref class VisualInteractionSource sealed : CompositionObject, ICompositionInteractionSource
public ref class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
/// [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 VisualInteractionSource final : CompositionObject, ICompositionInteractionSource
/// [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 VisualInteractionSource : CompositionObject, ICompositionInteractionSource
[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 VisualInteractionSource : CompositionObject, ICompositionInteractionSource
[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 class VisualInteractionSource : CompositionObject, ICompositionInteractionSource
Public NotInheritable Class VisualInteractionSource
Inherits CompositionObject
Implements ICompositionInteractionSource
Public Class VisualInteractionSource
Inherits CompositionObject
Implements ICompositionInteractionSource
Vererbung
Object Platform::Object IInspectable CompositionObject VisualInteractionSource
Attribute
Implementiert

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

Versionsverlauf

Windows-Version SDK-Version Wertschöpfung
1703 15063 ConfigureCenterPointXModifiers
1703 15063 ConfigureCenterPointYModifiers
1703 15063 ConfigureDeltaPositionXModifiers
1703 15063 ConfigureDeltaPositionYModifiers
1703 15063 ConfigureDeltaScaleModifiers
1703 15063 DeltaPosition
1703 15063 DeltaScale
1703 15063 Position
1703 15063 PositionVelocity
1703 15063 Skalieren
1703 15063 ScaleVelocity
1809 17763 PointerWheelConfig
1903 18362 CreateFromIVisualElement

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

Der Umfang der Skalierungsänderung, die während des bevorstehenden Frames angewendet werden soll. Multiplikative. Der Standardwert lautet 1. Nur über Ausdruck/Animation lesbar.

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

Gibt an, ob die Verschiebung auf der x-Achse ge railt wird.

Die IsPositionXRailsEnabled-Eigenschaft definiert die Geländerkonfiguration, wenn die X-Achsen-Verschiebung an den entsprechenden InteractionTracker gesendet wird. Wenn der anfängliche Teil der Verschiebung in einem bestimmten Bereich relativ zur X-Achse abgewinkelt ist, wird die Y-Komponente der Schwenkung ignoriert und als perfekte horizontale Verschiebung 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 die Verschiebung auf der y-Achse ge railed ist.

Die IsPositionYRailsEnabled-Eigenschaft definiert die Geländerkonfiguration, wenn die Y-Achsen-Verschiebung an den entsprechenden InteractionTracker gesendet wird. Wenn die Funktion aktiviert ist, wird die X-Komponente der Schwenkung ignoriert, wenn der anfängliche Teil der Verschiebung innerhalb eines bestimmten Bereichs relativ zur Y-Achse abgewinkelt wird und als perfekte vertikale Verschiebung betrachtet wird. Diese Eigenschaft ist häufig in Situationen aktiviert, in denen sowohl ein X- als auch ein Y-Bildlauf aktiviert ist, aber auch eine zuverlässige, perfekte vertikale Verschiebung erfordert.

ManipulationRedirectionMode

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

PointerWheelConfig

Ruft die Konfiguration für die Zeigerradeingabe ab.

Position

Die Gesamtmenge der Positionsänderung seit beginn der Interaktion. Der Standardwert ist 0. Nur über Ausdruck/Animation lesbar.

PositionVelocity

Die sofortige Änderungsrate der Position in der Interaktion in Pixel pro Sekunde. Der Standardwert ist 0. Schreibzugriff nur über Ausdruck/Animation.

PositionXChainingMode

Die PositionXChainingMode-Eigenschaft definiert das Verkettungsverhalten für eine InteractionSource in X-Richtung. Es gibt drei Typen von InteractionChainingModes : Auto , Always , Never . Wenn die Verkettung in X-Richtung aktiviert ist, wird die Eingabe an die VisualInteractionSource des nächsten Vorgängers gesendet, wenn die Interaktion (z. B. Verschiebung) 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 Typen von InteractionSourceModeszur Auswahl: Interaktionen sind Disabled, EnabledWithInertia und 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 gesendet, wenn die Interaktion (z. B. Verschiebung) 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 Typen von InteractionSourceModeszur Auswahl: Interaktionen sind Disabled, EnabledWithInertia und EnabledWithoutInertia. Diese Eigenschaft muss aktiviert sein, damit VisualInteractionSource Daten der Y-Achse an InteractionTracker senden kann.

Properties

Die Auflistung der Eigenschaften, die dem CompositionObject zugeordnet sind.

(Geerbt von CompositionObject)
Scale

Der prozentuale Gesamtunterschied in der Skalierung 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 Typen von InteractionChainingModes : Auto, Always, Never. Wenn die Skalierungskette aktiviert ist, wird die Eingabe an die VisualInteractionSource des nächsten Vorgängers gesendet, wenn die Interaktion (z. B. schwenken) andernfalls die Position von InteractionTracker über die minimale oder maximale Skalierungsposition hinaus annimmt.

ScaleSourceMode

Definiert, wie Interaktionen für eine VisualInteractionSource auf der Skalierungsachse verarbeitet werden. Es stehen drei Typen von InteractionSourceModeszur Auswahl: Interaktionen sind Disabled , EnabledWithInertia und 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 der erste CompositionConditionalValue seine ". Bedingung" mit "true" ersetzt den CenterPointX-Zoomwert, den VisualInteractionSource mit seinem ". Wert". Wenn keine auf true ausgewertet wird, wird der CenterPointX-Frame nicht ersetzt.

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

Verwendet eine sortierte Liste von CompositionConditionalValue. In einem Frame hat der erste CompositionConditionalValue seine ". Condition" evaluate to true ersetzt den Zoom CenterPointY-Wert, den VisualInteractionSource mit seinem ". 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 der erste CompositionConditionalValue seine ". Condition" evaluate to true ersetzt den DeltaPositionX-Wert, den VisualInteractionSource mit seinem ". Wert". Wenn keine auf true ausgewertet wird, wird der DeltaPositionX-Frame nicht ersetzt.

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

Verwendet eine sortierte Liste von CompositionConditionalValue. In einem Frame hat der erste CompositionConditionalValue seine ". Bedingung" mit "true" ersetzt den DeltaPositionY-Wert, den VisualInteractionSource mit dem wert "bereitstellt. Wert". Wenn keine als true ausgewertet wird, wird der DeltaPositionY-Frame nicht ersetzt.

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

Verwendet eine sortierte Liste von CompositionConditionalValue. In einem Frame hat der erste CompositionConditionalValue seine ". Bedingung" mit "true" ersetzt den DeltaScale-Wert, den VisualInteractionSource mit seinem ". Wert". Wenn keines auf true ausgewertet wird, wird der DeltaScale-Frame nicht ersetzt.If none evaluate to true, the DeltaScale is not replaced that frame.

ConnectAnimation(String, CompositionAnimation)

Verbindet und Animation.

(Geerbt von CompositionObject)
Create(Visual)

Erstellt eine instance von VisualInteractionSource.

CreateFromIVisualElement(IVisualElement)

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

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

Gibt an, dass konfigurierte Bearbeitungen für den angegebenen Zeigerdatenstrom ab dem angegebenen PointerPoint an den InteractionTracker und nicht an den UI-Thread der App gesendet werden sollen.

TryRedirectForManipulation ermöglicht es visualInteractionSource , den Zeigerdatenstrom an den InteractionTracker umzuleiten, wenn die Geste mit der Konfiguration auf der VisualInteractionSource übereinstimmt. Diese Methode sollte nur mit der Zeigereingabe des DeviceType Touch aufgerufen werden.

Gilt für:

Weitere Informationen