Freigeben über


InteractionTracker.NaturalRestingPosition Eigenschaft

Definition

Natürliche Ruheposition für den InteractionTracker.

Die NaturalRestingPosition-Eigenschaft ist die berechnete Position, an der InteractionTracker ohne Berücksichtigung von Grenzen oder Inertia-Modifizierern anhält. Diese Eigenschaft ist häufig nützlich für Aktionen wie Virtualisierung in einer Bildlaufumgebung, bei der es wichtig ist, den Speicherort zu kennen, an dem InteractionTracker beendet wird. Es gibt zwei Standard Anwendungsfälle für die Verwendung der NaturalRestingPosition-Eigenschaft: Abrufen des aktuellen Werts in den InertiaStateEntered-Ereignisargumenten oder Verweisen auf diese Eigenschaft in einer ExpressionAnimation beim Erstellen von Dingen wie InertiaStateEntered-Modifizierern.

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

Eigenschaftswert

Vector3 Vector3

float3

Natürliche Ruheposition für den InteractionTracker.

Beispiele

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

Hinweise

Die beiden im obigen Codeausschnitt beschriebenen Anwendungsfälle sind die primären Verwendungen der NaturalRestingPosition-Eigenschaft. Obwohl Sie möglicherweise versucht sind, auf diese Eigenschaft aus InteractionTracker wie jede andere object.property-Beziehung zu verweisen, erhalten Sie nicht immer den aktuellsten Wert. In dieser Situation wird empfohlen, auf das InertiaStateEntered-Ereignis zu lauschen und den neuesten Wert aus den Argumenten abzurufen.

Gilt für: