Partager via


InteractionTracker.NaturalRestingPosition Propriété

Définition

Position de repos naturelle pour l’InteractionTracker.

La propriété NaturalRestingPosition est la position calculée à laquelle InteractionTracker s’arrêtera sans prendre en compte les limites ou les modificateurs d’inertie. Cette propriété est souvent utile pour des actions telles que la virtualisation dans une expérience de défilement, où il est important de connaître l’emplacement où InteractionTracker s’arrêtera . Il existe deux cas d’usage main pour l’utilisation de la propriété NaturalRestingPosition : récupération de sa valeur actuelle dans les arguments d’événement InertieStateEntered ou référencement de cette propriété dans une expressionAnimation lors de la création d’éléments tels que des modificateurs d’inertie.

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

Valeur de propriété

Vector3 Vector3

float3

Position de repos naturelle pour l’InteractionTracker.

Exemples

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

Remarques

Les deux cas d’usage décrits dans l’extrait de code ci-dessus sont les principales utilisations de la propriété NaturalRestingPosition. Bien que vous soyez tenté de référencer cette propriété sur InteractionTracker comme n’importe quelle autre relation object.property, vous n’obtiendrez pas toujours la valeur la plus récente. Dans ce cas, il est recommandé d’écouter l’événement InertieStateEntered et de récupérer la valeur la plus récente à partir des arguments.

S’applique à