VisualInteractionSource Classe

Definizione

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

VisualInteractionSource è progettato per essere usato solo con InteractionTracker e definisce quale input verrà inviato a InteractionTracker per determinarne lo stato e le proprietà. Questa classe contiene sia l'oggetto visivo da usare per l'hit testing, sia un'ampia gamma di proprietà di configurazione per le quali i movimenti e i tipi di input verranno inviati a InteractionTracker.

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

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 l'hit testing che per lo spazio delle coordinate per il rilevamento dei movimenti. Di conseguenza, è importante usare un oggetto Visivo che non sarà in movimento durante la manipolazione. È possibile associare più oggetti VisualInteractionSource 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 movimento di avvicinamento delle dita, 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 inerzia:

  • 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 inerzia.

  • La disabilitazione dell'inerzia indica che la velocità di posizione o scala passerà immediatamente a 0 al termine dell'interazione. Quando l'input che guida la posizione o la scala 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 attivate e indicano che la panoramica orizzontale o verticale verrà bloccata su un particolare asse all'avvio principalmente su tale asse. Questo aspetto è illustrato in modo più dettagliato nelle pagine delle proprietà del railing.

La configurazione del 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 concatenare l'input a un altro InteractionTracker tramite un altro oggetto VisualInteractionSource o a un controllo ScrollViewer se l'oggetto visivo di origine di VisualInteractionSource è figlio di ScrollViewer.

Proprietà

Nome Descrizione
Comment

Stringa da associare all'oggetto 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 fotogramma successivo. Moltiplicativo. Il valore predefinito è 1. Leggibile solo tramite espressione/animazione.

DispatcherQueue

Ottiene dispatcherQueue per CompositionObject.

(Ereditato da CompositionObject)
ImplicitAnimations

Raccolta di animazioni implicite associate a questo oggetto.

(Ereditato da CompositionObject)
IsPositionXRailsEnabled

Indica se la panoramica sull'asse x viene eseguita su binario.

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 è angolata all'interno di un determinato intervallo 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 viene eseguita su binario.

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 è angolata 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 sia un'esperienza di scorrimento X che Y, ma richiede anche una panoramica verticale affidabile e perfetta.

ManipulationRedirectionMode

Indica quale input deve essere reindirizzato a InteractionTracker.

PointerWheelConfig

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

Position

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

PositionVelocity

Frequenza istantanea della modifica della 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 interactionSource nella direzione X. Esistono tre tipi InteractionChainingMode :

  • Auto
  • Sempre
  • Mai

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) assumerebbe altrimenti 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 tre tipi InteractionSourceMode tra cui scegliere:

  • Le interazioni sono disabilitate
  • EnabledWithInertia
  • EnabledWithoutInertia

Questa proprietà deve essere abilitata per consentire a VisualInteractionSource di inviare dati sull'asse X a InteractionTracker.

PositionYChainingMode

La proprietà PositionYChainingMode definisce il comportamento di concatenamento per interactionSource nella direzione Y. Esistono tre tipi InteractionChainingMode : Auto, Always, Never. Quando il concatenamento nella direzione Y è abilitato, l'input passa all'oggetto VisualInteractionSource del predecessore più vicino ogni volta che l'interazione (ad esempio la panoramica) assumerebbe altrimenti 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 tre tipi InteractionSourceMode tra cui scegliere:

  • Le interazioni sono disabilitate
  • EnabledWithInertia
  • EnabledWithoutInertia

Questa proprietà deve essere abilitata per consentire a VisualInteractionSource di inviare i 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. Il valore predefinito è 1. Leggibile solo tramite espressione/animazione.

ScaleChainingMode

La proprietà ScaleChainingMode definisce il comportamento di concatenamento per interactionSource nella direzione Scale. Esistono tre tipi di InteractionChainingMode : Auto, Always, Never. Quando il concatenamento della scalabilità è abilitato, l'input passa al visualInteractionSource del predecessore più vicino ogni volta che l'interazione (ad esempio la panoramica) assumerà la posizione di InteractionTracker oltre la posizione minima o massima della scala.

ScaleSourceMode

Definisce la modalità di elaborazione delle interazioni per visualInteractionSource sull'asse della scala. Esistono tre tipi InteractionSourceMode tra cui scegliere:

  • Disattivato
  • EnabledWithInertia
  • EnabledWithoutInertia

Questa proprietà deve essere abilitata per consentire a VisualInteractionSource di inviare dati di scalabilità a InteractionTracker.

ScaleVelocity

Velocità istantanea di modifica della scala nell'interazione, in percentuale al secondo. Additivo. Il valore predefinito è 0. Leggibile solo tramite expression/animation.

Source

Oggetto visivo usato per l'hit testing e definisce lo spazio di coordinate per il riconoscimento dei movimenti.

Metodi

Nome Descrizione
Close()

Chiude CompositionObject e rilascia le risorse di sistema.

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

Accetta un elenco ordinato di oggetti CompositionConditionalValue . In un frame la prima CompositionConditionalValue proprietà Condition restituisce true sostituisce il valore Composition.Visual.CenterPoint X con il valore fornito dalla proprietà CompositionConditionalValue.Value . Se nessuno restituisce true, il Composition.Visual.CenterPoint valore X non viene sostituito per tale frame.

ConfigureCenterPointYModifiers(IIterable<CompositionConditionalValue>)

Accetta un elenco ordinato di CompositionConditionalValue. In una cornice il primo CompositionConditionalValue deve 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 oggetti CompositionConditionalValue . In un frame la prima CompositionConditionalValue proprietà Condition restituisce true sostituisce il valore DeltaPosition con il valore fornito dalla proprietà CompositionConditionalValue.Value . Se nessuno restituisce true, il DeltaPosition valore non viene sostituito per tale frame.

ConfigureDeltaPositionYModifiers(IIterable<CompositionConditionalValue>)

Accetta un elenco ordinato di oggetti CompositionConditionalValue . In un frame la prima CompositionConditionalValue proprietà Condition restituisce true sostituisce il valore DeltaPosition Y con il valore fornito dalla proprietà CompositionConditionalValue.Value . Se nessuno restituisce true, il DeltaPosition valore Y non viene sostituito per tale frame.

ConfigureDeltaScaleModifiers(IIterable<CompositionConditionalValue>)

Accetta un elenco ordinato di oggetti CompositionConditionalValue . In un frame la prima CompositionConditionalValue proprietà Condition restituisce true sostituisce il valore DeltaScale con il valore fornito dalla proprietà CompositionConditionalValue.Value . Se nessuno restituisce true, l'oggetto DeltaScale non viene sostituito per tale frame.

Create(Visual)

Crea un'istanza di VisualInteractionSource.

CreateFromIVisualElement(IVisualElement)

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

Dispose()

Esegue attività definite dall'applicazione associate alla liberazione, al rilascio o alla reimpostazione di 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(ExpPointerPoint)

Tenta di inviare modifiche configurate per il flusso del puntatore specificato al InteractionTracker, non al thread dell'interfaccia utente dell'app, a partire da ExpPointerPoint specificato.

Important

Questo metodo deve essere chiamato solo con un PointerDeviceType di Touch.

TryRedirectForManipulation(PointerPoint)

Tenta di inviare modifiche configurate per il flusso del puntatore specificato al InteractionTracker, non al thread dell'interfaccia utente dell'app, a partire dal puntatore specificato.

Important

Questo metodo deve essere chiamato solo con un PointerDeviceType di Touch.

Si applica a

Vedi anche