Condividi tramite


VisualInteractionSource Classe

Definizione

Oggetto per la configurazione dell'input all'InteractionTracker rispetto a un oggetto visivo.

VisualInteractionSource è progettato per essere usato solo con InteractionTracker e definisce quale input verrà inviato all'InteractionTracker per guidare lo stato e le proprietà. Questa classe contiene sia l'oggetto visivo da usare per il hit test, sia una varietà di proprietà di configurazione per cui verranno inviati movimenti e tipi di input all'InteractionTracker.

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
Ereditarietà
Object Platform::Object IInspectable CompositionObject VisualInteractionSource
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 Anniversary Edition (è stato introdotto in 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v3.0)

Esempio

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);
}

Commenti

VisualInteractionSource viene usato per definire proprietà importanti sui tipi di interazioni che devono guidare lo stato e le proprietà di InteractionTracker. La proprietà di origine viene usata sia per il hit test, sia per lo spazio di coordinate per il rilevamento dei movimenti. Di conseguenza, è importante usare un oggetto Visivo che non sarà in movimento durante la manipolazione. Più VisualInteractionSources possono essere associati allo stesso InteractionTracker se sono presenti più aree di hit test, ma i casi più comuni richiedono solo visualInteractionSource per un determinato InteractionTracker.

VisualInteractionSource è la classe per la configurazione dei tipi di movimenti da considerare per guidare InteractionTracker. La posizione X e Y sono associate rispettivamente alla panoramica orizzontale e verticale. La scala viene rilevata con un gesto di pizzicamento, spesso associato allo zoom. Queste tre modalità di origine sono tutte configurabili per l'input touch e Precision Touchpad. Ognuna di queste modalità di origine può essere abilitata con o senza inertia:

  • L'abilitazione dell'inerzia indica che la posizione o la scala verranno naturalmente interpolate dalla velocità di rilascio a nessuna velocità durante lo stato di inertia.

  • La disabilitazione dell'inertia indica che la velocità di posizione o scala andrà immediatamente a 0 al completamento dell'interazione. Quando l'input che determina la posizione o la scalabilità viene instradato all'interactionTracker, la proprietà InteractionTracker dello stesso nome verrà aggiornata in modo appropriato.

Le configurazioni delle guide indicano come verrà rilevato il movimento. Le guide, per impostazione predefinita, sono attive e indicano che la panoramica orizzontale o verticale blocca un asse specifico quando viene avviato principalmente su tale asse. Questo è illustrato in dettaglio sulle pagine delle proprietà di railing.

La configurazione di concatenamento indica se l'input elaborato da un oggetto VisualInteractionSource può passare a un'altra entità quando InteractionTracker raggiunge il valore minimo o massimo in tale direzione. Questa configurazione consentirà di incatenare l'input a un altro InteractionTracker tramite un altro oggetto VisualInteractionSource o a un oggetto Visivo ScrollViewer se l'oggetto visivo di origine di VisualInteractionSource è figlio di ScrollViewer.

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1703 15063 ConfigureCenterPointXModifiers
1703 15063 ConfigureCenterPointYModifiers
1703 15063 ConfigurareDeltaPositionXModifiers
1703 15063 ConfigurareDeltaPositionYModifiers
1703 15063 ConfigurareDeltaScaleModifiers
1703 15063 DeltaPosition
1703 15063 DeltaScale
1703 15063 Position
1703 15063 PositionVelocity
1703 15063 Scalabilità
1703 15063 ScaleVelocity
1809 17763 PointerWheelConfig
1903 18362 CreateFromIVisualElement

Proprietà

Comment

Stringa da associare a CompositionObject.

(Ereditato da CompositionObject)
Compositor

Compositor utilizzato per creare questo CompositionObject.

(Ereditato da CompositionObject)
DeltaPosition

Quantità di modifica della posizione da applicare durante il fotogramma successivo. Il valore predefinito è 0. Leggibile solo tramite espressione/animazione.

DeltaScale

Quantità di modifica della scala da applicare durante il frame successivo. Moltiplicativa. Assume il valore predefinito 1. Leggibile solo tramite espressione/animazione.

Dispatcher

Dispatcher per CompositionObject.

(Ereditato da CompositionObject)
DispatcherQueue

Ottiene dispatcherQueue per CompostionObject.

(Ereditato da CompositionObject)
ImplicitAnimations

Raccolta di animazioni implicite associate a questo oggetto.

(Ereditato da CompositionObject)
IsPositionXRailsEnabled

Indica se la panoramica sull'asse x è sottoposto a railing.

La proprietà IsPositionXRailsEnabled definisce la configurazione del railing per quando la panoramica dell'asse X viene inviata all'interactionTracker corrispondente. Se abilitata, se la parte iniziale della panoramica è inclinata all'interno di un intervallo specifico rispetto all'asse X, il componente Y della panoramica viene ignorato e considerato una panoramica orizzontale perfetta. Questa proprietà è spesso abilitata in situazioni in cui è abilitata sia un'esperienza di scorrimento X che Y, ma richiede anche una panoramica orizzontale affidabile e perfetta.

IsPositionYRailsEnabled

Indica se la panoramica sull'asse y è guidata.

La proprietà IsPositionYRailsEnabled definisce la configurazione del railing per quando la panoramica dell'asse Y viene inviata all'InteractionTracker corrispondente. Se abilitata, se la parte iniziale della panoramica è inclinata all'interno di un intervallo specifico rispetto all'asse Y, il componente X della panoramica viene ignorato e considerato una panoramica verticale perfetta. Questa proprietà è spesso abilitata in situazioni in cui è abilitata un'esperienza di scorrimento X e Y, ma richiede anche una panoramica verticale affidabile e perfetta.

ManipulationRedirectionMode

Indica l'input da reindirizzare a InteractionTracker.

PointerWheelConfig

Ottiene la configurazione per l'input della rotellina del puntatore.

Position

La quantità totale di posizione cambia dall'inizio dell'interazione. Il valore predefinito è 0. Leggibile solo tramite espressione/animazione.

PositionVelocity

Frequenza istantanea del cambiamento di posizione nell'interazione, espressa in pixel al secondo. Il valore predefinito è 0. Leggibile solo tramite expression/animation.

PositionXChainingMode

La proprietà PositionXChainingMode definisce il comportamento di concatenamento per un oggetto InteractionSource nella direzione X. Esistono tre tipi di InteractionChainingMode : Auto , Always , Never . Quando il concatenamento nella direzione X è abilitato, l'input passerà all'oggetto VisualInteractionSource del predecessore più vicino ogni volta che l'interazione (ad esempio la panoramica) assumerà in caso contrario la posizione di InteractionTracker oltre la posizione minima o massima X.

PositionXSourceMode

Modalità di origine per l'asse X.

La proprietà PositionXSourceMode definisce la modalità di elaborazione delle interazioni per un oggetto VisualInteractionSource sull'asse X. Esistono 3 tipi di InteractionSourceModetra cui scegliere: Le interazioni sono Disabilitate, EnabledWithInertia e EnabledWithoutInertia. Questa proprietà deve essere abilitata per consentire a VisualInteractionSource di inviare dati dell'asse X a InteractionTracker.

PositionYChainingMode

La proprietà PositionYChainingMode definisce il comportamento di concatenamento per un Oggetto InteractionSource nella direzione Y. Esistono tre tipi di InteractionChainingMode : Auto , Always , Never . Quando il concatenamento nella direzione Y è abilitato, l'input passerà all'oggetto VisualInteractionSource del predecessore più vicino ogni volta che l'interazione (ad esempio la panoramica) assumerà in caso contrario la posizione di InteractionTracker oltre la posizione minima o massima di Y.

PositionYSourceMode

Modalità di origine per l'asse Y.

La proprietà PositionYSourceMode definisce la modalità di elaborazione delle interazioni per un oggetto VisualInteractionSource sull'asse Y. Esistono 3 tipi di InteractionSourceModetra cui scegliere: Le interazioni sono Disabilitate, EnabledWithInertia e EnabledWithoutInertia. Questa proprietà deve essere abilitata per consentire a VisualInteractionSource di inviare dati dell'asse Y a InteractionTracker.

Properties

Raccolta di proprietà associate a CompositionObject.

(Ereditato da CompositionObject)
Scale

Differenza percentuale totale in scala dall'inizio dell'interazione. Moltiplicativa. Assume il valore predefinito 1. Leggibile solo tramite espressione/animazione.

ScaleChainingMode

La proprietà ScaleChainingMode definisce il comportamento di concatenamento per un oggetto InteractionSource nella direzione Scale. Esistono tre tipi di InteractionChainingMode : Auto, Always, Never. Quando il concatenamento della scalabilità è abilitato, l'input passerà alla posizione visualInteractionSource del predecessore più vicino ogni volta che l'interazione (ad esempio la panoramica) accetta in caso contrario la posizione di InteractionTracker oltre la posizione minima o massima di Scale.

ScaleSourceMode

Definisce la modalità di elaborazione delle interazioni per un oggetto VisualInteractionSource sull'asse della scala. Esistono 3 tipi di InteractionSourceModetra cui scegliere: Le interazioni sono Disabilitate , EnabledWithInertia e EnabledWithoutInertia . Questa proprietà deve essere abilitata per consentire a VisualInteractionSource di inviare dati di scalabilità a InteractionTracker.

ScaleVelocity

Frequenza istantanea della modifica della scala nell'interazione, in percentuale al secondo. Additivo. Il valore predefinito è 0. Leggibile solo tramite espressione/animazione.

Source

L'oggetto visivo usato per il test di hit-testing e definisce lo spazio coordinato per il riconoscimento dei movimenti.

Metodi

Close()

Chiude CompositionObject e rilascia le risorse di sistema.

(Ereditato da CompositionObject)
ConfigureCenterPointXModifiers(IIterable<CompositionConditionalValue>)

Accetta un elenco ordinato di CompositionConditionalValue. In un frame, il primo CompositionConditionalValue per avere il relativo ". Condizione" restituisce true sostituisce il valore di Zoom CenterPointX fornito da VisualInteractionSource con il relativo ". Valore". Se nessuno restituisce true, CenterPointX non viene sostituito da tale frame.

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

Accetta un elenco ordinato di CompositionConditionalValue. In un frame, il primo CompositionConditionalValue per avere il relativo ". Condizione" restituisce true sostituisce il valore di Zoom CenterPointY fornito da VisualInteractionSource con il relativo ". Valore". Se nessuno restituisce true, CenterPointY non viene sostituito da tale frame.

ConfigureDeltaPositionXModifiers(IIterable<CompositionConditionalValue>)

Accetta un elenco ordinato di CompositionConditionalValue. In un frame, il primo CompositionConditionalValue per avere il relativo ". Condizione" restituisce true sostituisce il valore DeltaPositionX fornito da VisualInteractionSource con il relativo ". Valore". Se nessuno restituisce true, DeltaPositionX non viene sostituito da tale frame.

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

Accetta un elenco ordinato di CompositionConditionalValue. In un frame, il primo CompositionConditionalValue per avere il relativo ". Condizione" restituisce true sostituisce il valore DeltaPositionY fornito da VisualInteractionSource con il valore ". Valore". Se nessuno restituisce true, DeltaPositionY non viene sostituito da tale frame.

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

Accetta un elenco ordinato di CompositionConditionalValue. In un frame, il primo CompositionConditionalValue per avere il relativo ". Condizione" restituisce true sostituisce il valore DeltaScale fornito da VisualInteractionSource con il relativo ". Valore". Se nessuno restituisce true, DeltaScale non viene sostituito da tale frame.

ConnectAnimation(String, CompositionAnimation)

Connette e animazione.

(Ereditato da CompositionObject)
Create(Visual)

Crea un'istanza di VisualInteractionSource.

CreateFromIVisualElement(IVisualElement)

Crea un'istanza di VisualInteractionSource da un elemento che implementa IVisualElement.

DisconnectAnimation(String)

Disconnette un'animazione.

(Ereditato da CompositionObject)
Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

(Ereditato da CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Definisce una proprietà che può essere animata.

(Ereditato da CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Connette un'animazione con la proprietà specificata dell'oggetto e avvia l'animazione.

(Ereditato da CompositionObject)
StartAnimation(String, CompositionAnimation)

Connette un'animazione con la proprietà specificata dell'oggetto e avvia l'animazione.

(Ereditato da CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Avvia un gruppo di animazioni.

Il metodo StartAnimationGroup in CompositionObject consente di avviare CompositionAnimationGroup. Tutte le animazioni nel gruppo verranno avviate contemporaneamente sull'oggetto .

(Ereditato da CompositionObject)
StopAnimation(String)

Disconnette un'animazione dalla proprietà specificata e arresta l'animazione.

(Ereditato da CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Arresta un gruppo di animazioni.

(Ereditato da CompositionObject)
TryGetAnimationController(String)

Restituisce un oggetto AnimationController per l'animazione in esecuzione sulla proprietà specificata.

(Ereditato da CompositionObject)
TryRedirectForManipulation(PointerPoint)

Indica che le manipolazioni configurate per il flusso del puntatore specificato devono essere inviate al thread dell'interfaccia utente di InteractionTracker, non al thread dell'interfaccia utente dell'app, a partire dal puntoerpoint specificato.

TryRedirectForManipulation consente a VisualInteractionSource di reindirizzare il flusso puntatore all'interactionTracker se il movimento corrisponde alla configurazione in VisualInteractionSource. Questo metodo deve essere chiamato solo con l'input puntatore del tocco DeviceType.

Si applica a

Vedi anche