InteractionTracker.NaturalRestingPosition Propriedade
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.
Posição de descanso natural para o InteractionTracker.
A propriedade NaturalRestingPosition é a posição calculada em que InteractionTracker chegará a uma parada sem considerar limites ou modificadores de inércia. Essa propriedade geralmente é útil para ações como virtualização em uma experiência de rolagem, em que é importante saber o local em que InteractionTracker será interrompido. Há dois casos de uso main para usar a propriedade NaturalRestingPosition: recuperar seu valor atual nos argumentos de evento InertiaStateEntered ou referenciar essa propriedade em uma ExpressionAnimation ao criar coisas como modificadores de inércia.
public:
property float3 NaturalRestingPosition { float3 get(); };
float3 NaturalRestingPosition();
public Vector3 NaturalRestingPosition { get; }
var vector3 = interactionTracker.naturalRestingPosition;
Public ReadOnly Property NaturalRestingPosition As Vector3
Valor da propriedade
Posição de descanso natural para o InteractionTracker.
Exemplos
// Listen for the InertiaStateEntered event, so can grab NaturalRestingPosition value.
public void InertiaStateEntered(InteractionTracker sender, InteractionTrackerInertiaStateEnteredArgs args)
{
// Grab the NaturalRestingPosition out of the args when the event is fired. Now have access to calculated Natural Rest spot
Vector3 naturalRest = args.NaturalRestingPosition;
}
// Reference the NaturalRestingPosition property in an expression for things like SnapPoints
void CreateBasicSnapPoint(float highBound, float lowBound)
{
var snappoint = InteractionTrackerInertiaRestingValue.Create(_compositor);
// Reference the NaturalRestingPosition of InteractionTracker in an ExpressionAnimation for conditional portion of an InertiaModifier.
snappoint.Condition = _compositor.CreateExpressionAnimation("this.target.NaturalRestingPosition.Y >= lowBound && this.target.NaturalRestingPosition.Y < highBound ");
snappoint.Condition.SetScalarParameter("lowBound", lowBound);
snappoint.Condition.SetScalarParameter("highBound", highBound);
// Snap to the highbound if condition met
snappoint.RestingValue = _compositor.CreateExpressionAnimation("highBound");
snappoint.RestingValue.SetScalarParameter("highBound", highBound);
yInertiaModifier.Add(snappoint);
_tracker.ConfigurePositionYInertiaModifiers(yInertiaModifier);
}
Comentários
Os dois casos de uso descritos no snippet de código acima são os principais usos da propriedade NaturalRestingPosition. Embora você possa ser tentado a fazer referência a essa propriedade fora do InteractionTracker como qualquer outra relação object.property, nem sempre você obterá o valor mais atualizado. É recomendável nessa situação que você escute o evento InertiaStateEntered e pegue o valor mais recente dos argumentos.