Condividi tramite


InteractionTrackerInertiaMotion Classe

Definizione

EspressioneAnimation che definisce il movimento di InteractionTracker durante lo stato di inertia.

La classe InteractionTrackerMotion contiene due espressioni che rappresentano una seconda equazione derivatadella posizione InteractionTracker userà per definire il movimento dall'inizio alla fine dell'inerzia quando viene soddisfatta una determinata condizione. La classe InteractionTrackerMotion è definita come due parti: l'istruzione condizionale da definire quando il movimento verrà eseguito e l'equazione che descrive il movimento per il modo in cui InteractionTracker raggiungerà la posizione di riposo finale. Utilizzare la classe InteractionTrackerInertiaMotion quando è necessario definire un movimento personalizzato (ad esempio un movimento di primavera) per InteractionTracker da usare quando si trova nello stato di inerzia.

public ref class InteractionTrackerInertiaMotion sealed : InteractionTrackerInertiaModifier
/// [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 InteractionTrackerInertiaMotion final : InteractionTrackerInertiaModifier
[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 InteractionTrackerInertiaMotion : InteractionTrackerInertiaModifier
Public NotInheritable Class InteractionTrackerInertiaMotion
Inherits InteractionTrackerInertiaModifier
Ereditarietà
Object Platform::Object IInspectable CompositionObject InteractionTrackerInertiaModifier InteractionTrackerInertiaMotion
Attributi

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 CustomSpringInertiaMotion(float dampingCoefficient, 	float springStiffnessCoefficient)
{
  //
  // Set up our inertia modifiers to use our custom motion
  //
  InteractionTrackerInertiaMotion[] modifiers = 
  new InteractionTrackerInertiaMotion[1];

  var modifier1 = InteractionTrackerInertiaMotion.Create(_compositor);

  /*
  We create a custom spring motion for when the InteractionTracker passes the
  maximum boundary. 
  When we hit the boundary, the amount of oscillation is determined by the 	distance to the far end point, the spring stiffness and damping rate.
  */ 

  // Define the condition that the spring motion gets applied – when we pass the
  // maximum boundary
  modifier1.Condition = _compositor.CreateExpressionAnimation(
  "this.Target.NaturalRestingPosition.X > this.Target.MaxPosition.X");

  // Define the second derivative equation as a custom spring force motion
  // Equation = kx–cv where (k is spring constant, c is damping, x is displacement)
  modifier1.Motion = _compositor.CreateExpressionAnimation(
    "(-springStiffnessCoefficient * (this.Target.Position.X – this.Target.MaxPosition.X)) + " +
    "(-dampingCoefficient * target.PositionVelocityInPixelsPerSecond.X");

  modifier1.Motion.SetScalarParameter("springStiffnessCoefficient", springStiffnessCoefficient);
  modifier1.Motion.SetScalarParameter("dampingCoefficient", dampingCoefficient);

  modifiers[0] = modifier1;

  // Attach InertiaModifiers to the Y position component of InteractionTracker
  _tracker.ConfigurePositionYInertiaModifiers(modifiers);
}

Commenti

Quando si compila expressionAnimation per il componente di movimento di InteractionTrackerInertiaMotion, l'espressione viene descritta come seconda equazione derivata. Ad esempio, nel frammento di codice precedente viene usano l'equazione di base per il movimento Spring Force con umidità.

Quando si collega il modificatore InteractionTrackerInertiaMotion all'InteractionTracker, viene configurato in posizione X/Y o scala.

ExpressionAnimation che definisce la proprietà condition viene valutata una sola volta quando InteractionTracker entra in Inertia (aka quando l'interazione viene completata, ad esempio il dito rilasciato). Se la condizione restituisce true, l'espressione InertiaMotion viene valutata ogni frame per il resto di Inertia, anche se l'espressione condizione tecnicamente non è più vera.

I modificatori di InteractionTrackerInertiaMotion modificano l'equazione InteractionTracker per calcolarne la posizione. Pertanto, la posizione di riposo finale è determinata dalla natura dell'equazione stessa. Se è necessario che InteractionTracker si arresti in una posizione specifica, usare il modificatore InteractionTrackerInertiaRestingValue .

Proprietà

Comment

Stringa da associare a CompositionObject.

(Ereditato da CompositionObject)
Compositor

Compositore usato per creare questo oggetto CompositionObject.

(Ereditato da CompositionObject)
Condition

EspressioneAnimation che descrive quando deve essere applicato il modificatore.

La proprietà Condition è un'espressioneAnimazione che definisce quando l'equazione del movimento specificata viene utilizzata da InteractionTracker durante Inertia. Questa espressione viene valutata una volta dopo l'interazione e deve essere risolta in un tipo Bool, in caso contrario, viene generato un errore quando viene valutata la condizione. Per altre informazioni sulla compilazione delle espressioni, vedere la pagina della classe ExpressionAnimation .

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

EspressioneAnimation che descrive il movimento modificato per InteractionTracker se l'espressione nella proprietà Condition è true.

La proprietà Motion è un'espressioneAnimation che descrive il movimento InteractionTracker utilizzerà durante l'inerzia quando viene soddisfatta la condizione corrispondente. L'espressione verrà valutata ogni frame mentre InteractionTracker si trova in Inertia e deve essere risolta in un tipo Float, in caso contrario viene generato un errore quando viene valutata l'equazione. Per altre informazioni sulla compilazione delle espressioni, vedere la pagina della classe ExpressionAnimation .

Properties

Raccolta di proprietà associate a CompositionObject.

(Ereditato da CompositionObject)

Metodi

Close()

Chiude l'oggetto CompositionObject e rilascia le risorse di sistema.

(Ereditato da CompositionObject)
ConnectAnimation(String, CompositionAnimation)

Connette e animazione.

(Ereditato da CompositionObject)
Create(Compositor)

Crea un'istanza di InteractionTrackerInertiaMotion.

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 del 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 nella proprietà specificata.

(Ereditato da CompositionObject)

Si applica a

Vedi anche