Compartilhar via


InteractionTracker.NaturalRestingPosition Propriedade

Definição

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

Vector3 Vector3

float3

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.

Aplica-se a