InteractionTrackerInertiaMotion Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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, AnimationController) |
Conecta uma animação com a propriedade especificada do objeto e inicia a animação. (Herdado de CompositionObject) |
StartAnimation(String, CompositionAnimation) |
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) |