InteractionTracker.NaturalRestingPosition Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Естественное положение отдыха для InteractionTracker.
Свойство NaturalRestingPosition — это вычисляемая позиция, в которой Будет остановлена функция InteractionTracker , не учитывая границы или модификаторы инерции. Это свойство часто полезно для таких действий, как виртуализация при прокрутке, где важно знать расположение, где будет остановлен InteractionTracker . Существует два main вариантов использования свойства NaturalRestingPosition: получение его текущего значения в аргументах события InertiaStateEntered или ссылка на это свойство в ExpressionAnimation при создании таких вещей, как модификаторы инерции.
public:
property float3 NaturalRestingPosition { float3 get(); };
float3 NaturalRestingPosition();
public Vector3 NaturalRestingPosition { get; }
var vector3 = interactionTracker.naturalRestingPosition;
Public ReadOnly Property NaturalRestingPosition As Vector3
Значение свойства
Естественное положение отдыха для 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);
}
Комментарии
Два варианта использования, описанные в приведенном выше фрагменте кода, являются основными вариантами использования свойства NaturalRestingPosition. Хотя может возникнуть соблазн ссылаться на это свойство в InteractionTracker , как и на любое другое отношение object.property, вы не всегда получите самое актуальное значение. В этой ситуации рекомендуется прослушивать событие InertiaStateEntered и получать последнее значение из аргументов.