Share via


InteractionTrackerInertiaMotion Classe

Definição

Uma ExpressionAnimation que define o movimento de InteractionTracker durante seu estado de inércia.

A classe InteractionTrackerMotion contém dois ExpressionAnimationque representam uma segunda equação derivada da posição que InteractionTracker usará para definir o movimento do início ao fim da inércia quando uma condição específica for atendida. A classe InteractionTrackerMotion é definida como duas partes: a instrução condicional a ser definida quando o movimento ocorrerá e a equação que descreve o movimento de como InteractionTracker atingirá sua posição de descanso final. Utilize a classe InteractionTrackerInertiaMotion quando precisar definir um movimento personalizado (como um movimento de mola) para InteractionTracker usar quando estiver em seu estado de inércia.

public ref class InteractionTrackerInertiaMotion sealed : InteractionTrackerInertiaModifier
/// [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)]
class InteractionTrackerInertiaMotion final : InteractionTrackerInertiaModifier
/// [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)]
class InteractionTrackerInertiaMotion final : InteractionTrackerInertiaModifier
[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 sealed class InteractionTrackerInertiaMotion : InteractionTrackerInertiaModifier
[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 sealed class InteractionTrackerInertiaMotion : InteractionTrackerInertiaModifier
Public NotInheritable Class InteractionTrackerInertiaMotion
Inherits InteractionTrackerInertiaModifier
Herança
Object Platform::Object IInspectable CompositionObject InteractionTrackerInertiaModifier InteractionTrackerInertiaMotion
Atributos

Exemplos

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

Comentários

Ao criar a ExpressionAnimation para o componente de movimento de InteractionTrackerInertiaMotion, a expressão é descrita como uma segunda equação derivada. Por exemplo, no snippet de código acima, utilizamos a equação básica para o movimento spring force com umidade.

Ao anexar o modificador InteractionTrackerInertiaMotion ao InteractionTracker, configure-o para a Posição X/Y ou Escala.

A ExpressionAnimation que define a propriedade de condição só é avaliada uma vez quando InteractionTracker entra na Inércia (também conhecida como quando a interação é concluída, como dedo liberado). Se a condição for avaliada como true, a Expressão InertiaMotion será avaliada a cada quadro para o restante da Inércia, mesmo que a expressão de condição tecnicamente não seja mais verdadeira.

Os modificadores InteractionTrackerInertiaMotion alteram a equação que InteractionTracker usa para calcular sua posição. Assim, a posição de descanso final é determinada pela natureza da própria equação. Se você precisar que InteractionTracker pare em um local específico, utilize o modificador InteractionTrackerInertiaRestingValue .

Propriedades

Comment

Uma cadeia de caracteres a ser associada ao CompositionObject.

(Herdado de CompositionObject)
Compositor

O Compositor usado para criar esse CompositionObject.

(Herdado de CompositionObject)
Condition

Uma ExpressionAnimation que descreve quando o modificador deve ser aplicado.

A propriedade Condition é uma ExpressionAnimation que define quando a equação de movimento especificada é utilizada pelo InteractionTracker durante a Inércia. Essa expressão é avaliada uma vez após a interação ocorrer e deve resolve a um tipo Bool, caso contrário, um erro será gerado quando a condição for avaliada. Consulte a página classe ExpressionAnimation para obter mais detalhes sobre como criar expressões.

DispatcherQueue

Obtém o DispatcherQueue para o CompositionObject.

(Herdado de CompositionObject)
ImplicitAnimations

A coleção de animações implícitas anexadas a esse objeto.

(Herdado de CompositionObject)
Motion

Uma ExpressionAnimation que descreve o movimento modificado para InteractionTracker se a expressão na propriedade Condition for verdadeira.

A propriedade Motion é uma ExpressionAnimation que descreve o movimento que InteractionTracker utilizará durante a Inércia quando a condição correspondente for atendida. A expressão será avaliada a cada quadro enquanto InteractionTracker estiver na Inércia e deverá resolve a um tipo Float, caso contrário, um erro será gerado quando a equação for avaliada. Consulte a página classe ExpressionAnimation para obter mais detalhes sobre como criar expressões.

Properties

A coleção de propriedades associadas ao CompositionObject.

(Herdado de CompositionObject)

Métodos

Close()

Fecha o CompositionObject e libera os recursos do sistema.

(Herdado de CompositionObject)
Create(Compositor)

Cria uma instância de InteractionTrackerInertiaMotion.

Dispose()

Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados.

(Herdado de CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Define uma propriedade que pode ser animada.

(Herdado de CompositionObject)
StartAnimation(String, CompositionAnimation)

Conecta uma animação com a propriedade especificada do objeto e inicia a animação.

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

Conecta uma animação com a propriedade especificada do objeto e inicia a animação.

(Herdado de CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Inicia um grupo de animação.

O método StartAnimationGroup em CompositionObject permite iniciar CompositionAnimationGroup. Todas as animações no grupo serão iniciadas ao mesmo tempo no objeto .

(Herdado de CompositionObject)
StopAnimation(String)

Desconecta uma animação da propriedade especificada e interrompe a animação.

(Herdado de CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Interrompe um grupo de animação.

(Herdado de CompositionObject)
TryGetAnimationController(String)

Retorna um AnimationController para a animação em execução na propriedade especificada.

(Herdado de CompositionObject)

Aplica-se a

Confira também