Compartir a través de


InteractionTracker.NaturalRestingPosition Propiedad

Definición

Posición de reposo natural para InteractionTracker.

La propiedad NaturalRestingPosition es la posición calculada en la que InteractionTracker se detendrá sin tener en cuenta los límites ni los modificadores de inercia. Esta propiedad suele ser útil para acciones como la virtualización en una experiencia de desplazamiento, donde es importante conocer la ubicación de dónde se detendrá InteractionTracker . Hay dos casos de uso principales para usar la propiedad NaturalRestingPosition: Recuperar su valor actual en los argumentos del evento InertiaStateEntered o hacer referencia a esta propiedad en una expressionAnimation al crear elementos como modificadores de inercia.

public:
 property float3 NaturalRestingPosition { float3 get(); };
float3 NaturalRestingPosition();
public Vector3 NaturalRestingPosition { get; }
var vector3 = interactionTracker.naturalRestingPosition;
Public ReadOnly Property NaturalRestingPosition As Vector3

Valor de propiedad

Vector3 Vector3

float3

Posición de reposo natural para InteractionTracker.

Ejemplos

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

Comentarios

Los dos casos de uso descritos en el fragmento de código anterior son los usos principales de la propiedad NaturalRestingPosition. Aunque es posible que tenga la tentación de hacer referencia a esta propiedad fuera de InteractionTracker como cualquier otra relación object.property, no siempre obtendrá el valor más actualizado. Se recomienda en esta situación que escuche el evento InertiaStateEntered y obtenga el valor más reciente de los argumentos.

Se aplica a