次の方法で共有


InteractionTracker.NaturalRestingPosition プロパティ

定義

InteractionTracker の自然な静止位置。

NaturalRestingPosition プロパティは、境界や慣性修飾子を計算せずに InteractionTracker が停止する計算位置です。 このプロパティは、多くの場合、スクロール エクスペリエンスでの仮想化などのアクションに役立ちます。 InteractionTracker が停止する場所を知ることが重要です。 NaturalRestingPosition プロパティを使用するには、2 つのメインユース ケースがあります。InertiaStateEntered イベント引数で現在の値を取得するか、慣性修飾子などを作成するときに ExpressionAnimation でこのプロパティを参照します。

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

プロパティ値

Vector3 Vector3

float3

InteractionTracker の自然な静止位置。

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

注釈

上記のコード スニペットで説明されている 2 つのユース ケースは、NaturalRestingPosition プロパティの主な用途です。 他の object.property リレーションシップと同様に InteractionTracker からこのプロパティを参照したくなるかもしれませんが、常に最新の値が取得されるとは限りません。 この状況では、 InertiaStateEntered イベントをリッスンし、引数から最新の値を取得することをお勧めします。

適用対象