Compartir a través de


InteractionTrackerInertiaMotion Clase

Definición

ExpressionAnimation que define el movimiento de InteractionTracker durante su estado de inercia.

La clase InteractionTrackerMotion contiene dos ExpresionesAnimationque representan una segunda ecuación derivada de la posición InteractionTracker usará para definir el movimiento desde el principio hasta el final de la inercia cuando se cumpla una condición determinada. La clase InteractionTrackerMotion se define como dos partes: la instrucción condicional para definir cuándo tendrá lugar el movimiento y la ecuación que describe el movimiento de cómo InteractionTracker alcanzará su posición final de reposo. Utilice la clase InteractionTrackerInertiaMotion cuando necesite definir un movimiento personalizado (como un movimiento de resorte) para que InteractionTracker lo use cuando esté en su estado de inercia.

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
Herencia
Object Platform::Object IInspectable CompositionObject InteractionTrackerInertiaModifier InteractionTrackerInertiaMotion
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 Anniversary Edition (se introdujo en la versión 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v3.0)

Ejemplos

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

Comentarios

Al crear expressionAnimation para el componente de movimiento de InteractionTrackerInertiaMotion, la expresión se describe como una segunda ecuación derivada. Por ejemplo, en el fragmento de código anterior, usamos la ecuación básica para el movimiento de Spring Force con amortiguación.

Al adjuntar el modificador InteractionTrackerInertiaMotion al Objeto InteractionTracker, se configura en la posición X/Y o escala.

ExpressionAnimation que define la propiedad condition solo se evalúa una vez cuando InteractionTracker entra en inercia (también conocido como cuando se completa la interacción, como el dedo liberado). Si la condición se evalúa como true, la expresión de InertiaMotion se evalúa cada fotograma para el resto de la inercia, incluso si la expresión de condición técnicamente ya no es verdadera.

Los modificadores InteractionTrackerInertiaMotion cambian la ecuación que InteractionTracker usa para calcular su posición. Por lo tanto, la posición de reposo final viene determinada por la naturaleza de la ecuación en sí. Si necesita InteractionTracker para que se detenga en una ubicación específica, utilice el modificador InteractionTrackerInertiaRestingValue .

Propiedades

Comment

Cadena que se va a asociar con compositionObject.

(Heredado de CompositionObject)
Compositor

Compositor que se usa para crear este CompositionObject.

(Heredado de CompositionObject)
Condition

ExpressionAnimation que describe cuándo se debe aplicar el modificador.

La propiedad Condition es una ExpressionAnimation que define cuándo se utiliza la ecuación de movimiento especificada por InteractionTracker durante la inercia. Esta expresión se evalúa una vez que se produce la interacción y debe resolverse en un tipo Bool; de lo contrario, se producirá un error cuando se evalúe la condición. Consulte la página clase ExpressionAnimation para obtener más detalles sobre la creación de expresiones.

Dispatcher

Distribuidor de CompositionObject.

(Heredado de CompositionObject)
DispatcherQueue

Obtiene dispatcherQueue para CompostionObject.

(Heredado de CompositionObject)
ImplicitAnimations

Colección de animaciones implícitas adjuntas a este objeto.

(Heredado de CompositionObject)
Motion

ExpressionAnimation que describe el movimiento modificado para InteractionTracker si la expresión de la propiedad Condition es true.

La propiedad Motion es una ExpressionAnimation que describe el objeto InteractionTracker de movimiento que usará durante la inercia cuando se cumpla la condición correspondiente. La expresión se evaluará cada fotograma mientras InteractionTracker está en inercia y debe resolverse en un tipo Float; de lo contrario, se producirá un error cuando se evalúe la ecuación. Consulte la página clase ExpressionAnimation para obtener más detalles sobre la creación de expresiones.

Properties

Colección de propiedades asociadas a CompositionObject.

(Heredado de CompositionObject)

Métodos

Close()

Cierra compositionObject y libera los recursos del sistema.

(Heredado de CompositionObject)
ConnectAnimation(String, CompositionAnimation)

Conecta y animación.

(Heredado de CompositionObject)
Create(Compositor)

Crea una instancia de InteractionTrackerInertiaMotion.

DisconnectAnimation(String)

Desconecta una animación.

(Heredado de CompositionObject)
Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados.

(Heredado de CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Define una propiedad que se puede animar.

(Heredado de CompositionObject)
StartAnimation(String, CompositionAnimation)

Conecta una animación con la propiedad especificada del objeto e inicia la animación.

(Heredado de CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Conecta una animación con la propiedad especificada del objeto e inicia la animación.

(Heredado de CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Inicia un grupo de animación.

El método StartAnimationGroup en CompositionObject permite iniciar CompositionAnimationGroup. Todas las animaciones del grupo se iniciarán al mismo tiempo en el objeto .

(Heredado de CompositionObject)
StopAnimation(String)

Desconecta una animación de la propiedad especificada y detiene la animación.

(Heredado de CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Detiene un grupo de animaciones.

(Heredado de CompositionObject)
TryGetAnimationController(String)

Devuelve un AnimationController para la animación que se ejecuta en la propiedad especificada.

(Heredado de CompositionObject)

Se aplica a

Consulte también