InteractionTracker Класс

Определение

Обрабатывает логику входных данных, которую можно использовать в качестве целевых объектов в ExpressionAnimations, обычно для управления движением визуальных элементов на основе входных данных.

public ref class InteractionTracker sealed : CompositionObject
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class InteractionTracker final : CompositionObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class InteractionTracker : CompositionObject
Public NotInheritable Class InteractionTracker
Inherits CompositionObject
Наследование
Object Platform::Object IInspectable CompositionObject InteractionTracker
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 Anniversary Edition (появилось в 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v3.0)

Примеры

void SetupSimpleInteractionTracker(Visual viewportVisual, Visual contentVisual)
{
  //
  // Create the InteractionTracker and set its min/max position and scale.  These could 
  // also be bound to expressions.  Note: The scrollable area can be changed from either 
  // the min or the max position to facilitate content updates/virtualization.
  //

  _tracker = InteractionTracker.Create(_compositor);

  _tracker.MaxPosition = new Vector3(
    contentVisual.Size.X - viewportVisual.Size.X,
    contentVisual.Size.Y - viewportVisual.Size.Y,
    0.0f);

  _tracker.MinScale = 0.5f;
  _tracker.MaxScale = 4.0f;


  //
  // Configure the interaction source.  Enable input with inertia on all axes.
  //

  var interactionSource = VisualInteractionSource.Create(viewportVisual);

  interactionSource.PositionXSourceMode = InteractionSourceMode.EnabledWithInertia;
  interactionSource.PositionYSourceMode = InteractionSourceMode.EnabledWithInertia;
  interactionSource.ScaleSourceMode = InteractionSourceMode.EnabledWithInertia;

  _tracker.InteractionSources.Add(interactionSource);


  //
  // Bind the InteractionTracker outputs to the contentVisual.
  //

  var positionExpression = _compositor.CreateExpressionAnimation("-tracker.Position");
  positionExpression.SetReferenceParameter("tracker", _tracker);

  contentVisual.StartAnimation("Offset", positionExpression);


  var scaleExpression = _compositor.CreateExpressionAnimation("Vector3(tracker.Scale, tracker.Scale, 1.0)");

  scaleExpression.SetReferenceParameter("tracker", _tracker);

  contentVisual.StartAnimation("Scale", scaleExpression);
}


Комментарии

InteractionTracker — это конечный автомат, который может управляться активными входными данными или явными вызовами для обновления или анимации его свойств. Класс InteractionTracker предназначен для включения входных данных для управления CompositionAnimationдля пользовательских взаимодействий. Для создания интерактивных интерфейсов необходимо связать один или несколько элементов VisualInteractionSourceс InteractionTracker.

Распространенные сценарии

IneractionTracker предназначен для использования:

  • Добавление пользовательского поведения прокрутки, например прокрутка элементов ListView или других визуальных элементов для удаления или закрытия
  • Переходы, связанные с сдвигом, например прокрутка для перехода между состояниями "закрыто" и "открыто"
  • Анимация эффекта на основе ввода, например сдвиг приводит к размытию экрана
  • Пользовательские элементы управления, например создание пользовательской реализации ScrollViewer с разными скоростями сдвига или возможность программного управления

Состояния и переходы InteractionTracker

InteractionTracker — это конечный автомат с четырьмя состояниями:

  • Бездействует: нет активных входных данных или анимаций, приводящая к interactionTracker
  • Взаимодействие. Активные пользовательские данные являются движущей силой InteractionTracker
  • Инерция. Активные анимации, которые являются результатом активного ввода или программной скорости, определяют InteractionTracker
  • CustomAnimation: свойство InteractionTracker анимируется напрямую На схеме ниже показаны эти четыре состояния и допустимые переходы состояний.
Состояния InteractionTracker:

Переходы состояния могут происходить из-за действий пользователя (например, запуска или остановки манипуляции) или явных вызовов методов в InteractionTracker. При выполнении одного из этих явных вызовов выдается идентификатор запроса для отслеживания того, игнорируется ли запрос или вызывается изменение состояния.

Важно отметить, что InteractionTracker выполняется в процессе, отличном от процесса, используемого приложением. Таким образом, все вызовы методов в InteractionTracker и связанных классах являются асинхронными, как и обратные вызовы, выданные через интерфейс IInteractionTrackerOwner.

Ниже описано, что вызывает каждое изменение состояния.

Состояние началаКонечное состояниеВозможные триггеры
БездействиеВзаимодействиеЭтот переход состояния происходит только при выполнении пользовательской манипуляции, которая соответствует visualInteractionSource, связанному с InteractionTracker.
БездействиеИнерцияЭтот переход состояния происходит только в том случае, если InteractionTracker находится в состоянии "Бездействующий" и вызывается TryUpdatePositionWithVelocity или TryUpdateScaleWithVelocity.
БездействиеCustomAnimationЭтот переход состояния происходит, когда InteractionTracker находится в состоянии бездействия и вызывается TryUpdatePositionWithAnimation или TryUpdateScaleWithAnimation.
ВзаимодействиеИнерцияЭтот переход состояния происходит только после завершения операций пользователя, отправленных в InteractionTracker. Когда активный вход заканчивается, InteractionTracker перейдет в состояние Инерция, а такие сведения, как скорость освобождения пальца и ИнерцияDecayRate, будут определять поведение во время состояния Инерция.
ИнерцияБездействиеЭтот переход состояния происходит, когда функции, используемые для обновления положения и (или) масштабирования, больше не приводят к изменению. Другими словами, позиция и скорость масштабирования достигли нуля. Этот переход состояния также может произойти, если выполняется вызов явного обновления положения или масштабирования без анимации или скорости. Эти вызовы завершат инерцию и перейдут в состояние "Бездействие" с обновленными значениями свойств.
ИнерцияИнерцияЭтот переход состояния происходит при вызове TryUpdatePositionWithVelocity или TryUpdateScaleWithVelocity, когда уже находится в состоянии Инерция. Повторный ввод инерции приведет к переоценке всех свойств InertiaStateEntered.
ИнерцияCustomAnimationЭтот переход состояния происходит, когда выполняется вызов TryUpdatePositionWithAnimation или TryUpdateScaleWithAnimation, находясь в состоянии инерции.
ИнерцияВзаимодействиеЭтот переход состояния происходит, когда активные входные данные от пользователя, который тестирует попадания, в VisualInteractionSource поступают до завершения инерции.
CustomAnimationБездействиеЭтот переход состояния происходит после завершения всех анимаций, заданных в свойствах положения и масштаба InteractionTracker.
CustomAnimationCustomAnimationЭтот переход состояния происходит, когда вызов TryUpdatePositionWithAnimation или TryUpdateScaleWithAnimation выполняется в состоянии CustomAnimation.
CustomAnimationИнерцияЭтот переход состояния происходит при вызове TryUpdatePositionWithVelocity или TryUpdateScaleWithVelocity в состоянии CustomAnimation.
CustomAnimationВзаимодействиеЭтот переход состояния происходит при выполнении пользовательской манипуляции, которая проверяет попадание в VisualInteractionSource, связанный с InteractionTracker.

Любой переход состояния, выполняемый InteractionTracker, вызовет обратный вызов, указывающий новое состояние с аргументами, которые содержат сведения, относящиеся к этому состоянию, а также идентификатор запроса, вызвавшего изменение состояния. Активные манипуляции со стороны пользователя приведут к получению идентификатора запроса 0. Любой вызов Try* будет выдавать requestID, который можно использовать для отслеживания того, какой вызов Try* вызвал изменение состояния. Первый requestID в течение времени существования приложения будет иметь значение 1, а каждый последующий вызов увеличивает requestID, что означает, что каждый из них будет уникальным.

Положение и масштабирование InteractionTracker

Двумя наиболее часто используемыми свойствами InteractionTracker являются position и scale. При изменении одного или обоих этих свойств будет отправлен обратный вызов ValuesChanged со сведениями о текущих значениях. Из-за асинхронного характера InteractionTracker значения, полученные через обратные вызовы InteractionTracker, являются лучшим способом обновления логики приложения на основе текущего состояния и значений InteractionTracker и его свойств.

Важным отличием InteractionTracker является то, что его положение и масштаб не связаны с пространством координат какого-либо конкретного визуального элемента. При создании InteractionTracker его положение будет иметь подканалы x, y и z вектора, равное 0, а масштаб — 1. Только активные входные вызовы или вызовы Try* могут привести к изменению этих значений. Минимальное и максимальное значения для каждого свойства определяют диапазон, в котором могут изменяться значения. Исключением является концепция "overpan" или "overzoom", где активная манипуляция может привести к тому, что значения могут немного превысить минимальное или максимальное значение во время взаимодействия. Однако после завершения манипуляции значения всегда останутся в пределах заданного диапазона. CustomAnimations всегда будет зажат в диапазонах, заданных для положения и масштабирования.

Концепция пространства координат InteractionTracker согласуется с концепцией экранных координат в том, что движение вверх/влево увеличивает значение позиции, а перемещение вниз/вправо уменьшает значение положения. В результате свойство position при присоединении к смещению визуального элемента часто отменяется.

По умолчанию каналы минимальной и максимальной позиции имеют значение 0, а минимальное и максимальное значения шкалы — 1. Если нужное поведение для любого из свойств заключается в том, чтобы позволить ему изменяться за пределами этих начальных значений, необходимо обновить минимальные и максимальные значения.

InteractionTracker и ExpressionAnimations

InteractionTracker предоставляет различные свойства, которые можно использовать в контексте объектов ExpressionAnimationдля обновления анимируемых свойств CompositionObject . Из-за асинхронного характера InteractionTracker не рекомендуется запрашивать эти свойства напрямую. Вместо этого следует использовать свойства, предоставляемые в обратных вызовах для управления логикой приложения, и ссылаться на значения в ExpressionAnimation для обновления анимируемых свойств.

Как упоминалось выше, двумя наиболее часто используемыми свойствами InteractionTracker являются свойства Position и Scale. Это свойства, которые будут обновляться в ответ на ввод данных пользователем и вызовы Try*. Использование этих свойств в ExpressionAnimations приведет к обновлению анимируемых свойств CompositionObjects в ответ. Например, свойство InteractionTracker.position может быть привязано к объекту Offset визуального элемента. Эти свойства также часто используются для заполнения CompositionPropertySet, который отслеживает ход выполнения, что, в свою очередь, может управлять рядом скоординированных анимаций.

Направление входных данных в InteractionTracker

После настройки InteractionTracker по-прежнему требуется один последний шаг для фактического получения сенсорного ввода и ответа. См. документацию по VisualInteractionSource. TryRedirectForManipulation для получения дополнительных сведений о настройке входящих входных данных для потока в InteractionTracker.

Журнал версий

Версия Windows Версия пакета SDK Добавленная стоимость
1703 15063 ConfigureCenterPointXInertiaModifiers
1703 15063 ConfigureCenterPointYInertiaModifiers
1709 16299 ConfigureVector2PositionInertiaModifiers
1809 17763 IsInertiaFromImpulse
1809 17763 TryUpdatePosition(Vector3;InteractionTrackerClampingOption)
1809 17763 TryUpdatePositionBy(Vector3;InteractionTrackerClampingOption)
1903 18362 GetBindingMode
1903 18362 SetBindingMode
2004 19041 TryUpdatePosition(Vector3;InteractionTrackerClampingOption;InteractionTrackerPositionUpdateOption)

Свойства

Comment

Строка, связанная с CompositionObject.

(Унаследовано от CompositionObject)
Compositor

Составитель, используемый для создания этого объекта CompositionObject.

(Унаследовано от CompositionObject)
Dispatcher

Диспетчер для CompositionObject.

(Унаследовано от CompositionObject)
DispatcherQueue

Возвращает dispatcherQueue для объекта CompostionObject.

(Унаследовано от CompositionObject)
ImplicitAnimations

Коллекция неявных анимаций, присоединенных к этому объекту.

(Унаследовано от CompositionObject)
InteractionSources

Коллекция объектов, создающих взаимодействия.

IsInertiaFromImpulse

Возвращает значение, указывающее, является ли инерция результатом импульса.

IsPositionRoundingSuggested

Логическое значение, указывающее, предлагается ли в данный момент округление позиции.

MaxPosition

Максимально допустимое положение для InteractionTracker.

MaxScale

Максимальный масштаб для InteractionTracker.

MinPosition

Минимальная позиция, разрешенная для InteractionTracker.

MinScale

Минимальный масштаб для InteractionTracker.

NaturalRestingPosition

Естественное положение отдыха для InteractionTracker.

Свойство NaturalRestingPosition — это вычисляемая позиция, в которую Будет остановлена функция InteractionTracker , не учитывая границы или модификаторы инерции. Это свойство часто полезно для таких действий, как виртуализация при прокрутке, где важно знать расположение остановки InteractionTracker . Существует два main вариантов использования свойства NaturalRestingPosition: получение его текущего значения в аргументах событий InertiaStateEntered или ссылка на это свойство в ExpressionAnimation при создании таких вещей, как модификаторы инерции.

NaturalRestingScale

Естественная шкала отдыха для InteractionTracker.

Свойство NaturalRestingScale — это вычисляемая позиция шкалы, на которую будет останавливаться InteractionTracker без учета границ или модификаторов инерции. Это свойство часто полезно для таких действий, как виртуализация при прокрутке, где важно знать расположение остановки InteractionTracker . Существует два main вариантов использования свойства NaturalRestingScale: получение его текущего значения в аргументах событий InertiaStateEntered или ссылка на это свойство в ExpressionAnimation при создании таких вещей, как модификаторы инерции.

Owner

IInteractionTrackerOwner, связанный с InteractionTracker.

Position

Выходная позиция, вычисленная с помощью InteractionTracker. Текущая позиция является относительным значением. В состояниях Idle и CustomAnimation оно всегда будет находиться между значениями, указанными в свойствах MinPosition и MaxPosition. Свойство положения InteractionTracker может выйти за пределы этого диапазона во время состояний Взаимодействующий и Инерция, чтобы показать отказ или сопротивление на границе.

Свойство position объекта InteractionTracker — это Vector3, представляющий положение на оси X, Y и Z. Каналы X и Y являются единственными компонентами, которые будут обновлены InteractionTracker на этом этапе. Каналы этого Vector3 не будут колебаться за пределами 0 (значение по умолчанию), если значения MinPosition и MaxPosition не заданы.

PositionInertiaDecayRate

Скорость затухания инерции для позиции. Диапазон — от 0 до 1.

Свойство PositionInertiaDecayRate определяет скорость, с которой InteractionTracker будет замедляться до остановки, когда он входит в инерцию и положение меняется. Чем ближе к 1, тем быстрее InteractionTracker замедлится до остановки и наоборот. Каждый компонент, определенный как Vector3, представляет скорость затухания инерции для x, y, z соответственно.

PositionVelocityInPixelsPerSecond

Скорость, применяемая в настоящее время к позиции.

Свойство PositionVelocityInPixelsPerSecond представляет текущую скорость позиции InteractionTracker в состоянии инерции. Существует два main вариантов использования этого свойства: получение скорости позиции InteractionTracker сразу после того, как произошло взаимодействие, или ссылка на самую текущую скорость InteractionTracker в ExpressionAnimation.

Properties

Коллекция свойств, связанных с CompositionObject.

(Унаследовано от CompositionObject)
Scale

Масштаб выходных данных, вычисляемый с помощью InteractionTracker. Текущая шкала является относительным значением, которое зависит от значений, указанных в свойствах MinScale и MaxScale .

Свойство scale объекта InteractionTracker представляет собой значение float, представляющее масштаб в пространстве координат InteractionTracker . Это значение начинается с 1 и будет увеличиваться или уменьшаться в зависимости от активных входных данных или прямых вызовов для обновления или анимации свойства. Свойство scale, когда InteractionTracker находится в состоянии Бездействия или CustomAnimation, не изменится с 1, если не будут обновлены свойства MinScale и MaxScale , которые по умолчанию имеют значение 1. InteractionTracker Шкала может немного выйти за пределы этого диапазона во время состояний Взаимодействия и Инерции, чтобы показать отскоки или сопротивление на границе.

ScaleInertiaDecayRate

Скорость затухания инерции для масштаба. Диапазон — от 0 до 1.

Свойство ScaleInertiaDecayRate определяет скорость, с которой InteractionTracker будет замедляться до остановки, когда он вошел в инерцию и масштаб меняется. Чем ближе к 1, тем быстрее InteractionTracker замедлится до остановки и наоборот. В отличие от PositionInertiaDecayRate, определенного как Vector3, ScaleInertiaDecayRate определяется как один тип float.

ScaleVelocityInPercentPerSecond

Скорость изменения масштаба.

Свойство ScaleVelocityInPercentPerSecond представляет текущую скорость масштабирования InteractionTracker в состоянии инерции. Получение скорости позиции InteractionTracker сразу после возникновения взаимодействия или ссылка на самую текущую скорость InteractionTracker в ExpressionAnimation.

Методы

AdjustPositionXIfGreaterThanThreshold(Single, Single)

Корректирует координату позиции x, если она больше указанного порогового значения.

AdjustPositionYIfGreaterThanThreshold(Single, Single)

Корректирует координату позиции y, если она больше указанного порогового значения.

Close()

Закрывает объект CompositionObject и освобождает системные ресурсы.

(Унаследовано от CompositionObject)
ConfigureCenterPointXInertiaModifiers(IIterable<CompositionConditionalValue>)

Принимает упорядоченный список CompositionConditionalValue. В кадре, в то время как трекер находится в инерции, первый CompositionConditionalValue имеет свой ". Условие" вычисляется до true, заменяет значение zoom CenterPointX, которое используется в отслеживании, со своим значением ". Значение". Если значение не равно true, элемент CenterPointX не заменяется этим кадром.

ConfigureCenterPointYInertiaModifiers(IIterable<CompositionConditionalValue>)

Принимает упорядоченный список CompositionConditionalValue. В кадре, в то время как трекер находится в инерции, первый CompositionConditionalValue имеет свой ". Условие" вычисляется до true, заменяет значение CenterPointY масштабирования, которое использует средство отслеживания со своим значением ". Значение". Если значение не равно true, элемент CenterPointY не заменяется этим кадром.

ConfigurePositionXInertiaModifiers(IIterable<InteractionTrackerInertiaModifier>)

Применяет коллекцию объектов InteractionTrackerInertiaModifier к инерции x объекта InteractionTracker.

Метод ConfigurePositionXInertiaModifiers применяет отдельный объект или коллекцию InteractionTrackerInertiaModifiers к компоненту x InteractionTracker. Система будет оценивать каждое свойство условия модификатора X в том порядке, в который они были добавлены в InteractionTracker. Таким образом, порядок, который имеется в коллекции InteractionTrackerInertiaModifier , будет таким же, как и в системе.

ConfigurePositionYInertiaModifiers(IIterable<InteractionTrackerInertiaModifier>)

Применяет коллекцию объектов InteractionTrackerInertiaModifier к инерции y объекта InteractionTracker.

Метод ConfigurePositionYInertiaModifiers применяет отдельный объект или коллекцию InteractionTrackerInertiaModifiers к компоненту y InteractionTracker. Система будет оценивать каждое свойство условия модификатора Y в том порядке, в который они были добавлены в InteractionTracker. Таким образом, порядок, который имеется в коллекции InteractionTrackerInertiaModifier , будет таким же, как и в системе.

ConfigureScaleInertiaModifiers(IIterable<InteractionTrackerInertiaModifier>)

Применяет коллекцию объектов InteractionTrackerInertiaModifier к масштабу InteractionTracker.

Метод ConfigureScaleInertiaModifiers применяет отдельный объект или коллекцию InteractionTrackerInertiaModifiers к компоненту масштабирования InteractionTracker. Система будет оценивать каждое свойство условия модификатора Scale в том порядке, в который они были добавлены в InteractionTracker. Таким образом, порядок, который имеется в коллекции InteractionTrackerInertiaModifier , будет таким же, как и в системе.

ConfigureVector2PositionInertiaModifiers(IIterable<InteractionTrackerVector2InertiaModifier>)

Применяет коллекцию объектов InteractionTrackerInertiaModifier к позиции InteractionTracker.

ConnectAnimation(String, CompositionAnimation)

Соединения и анимация.

(Унаследовано от CompositionObject)
Create(Compositor)

Создает экземпляр InteractionTracker.

Этот метод Create создаст экземпляр InteractionTracker. После создания InteractionTracker настройки свойств, присоединения VisualInteractionSource и ссылки на позицию или масштаб в ExpressionAnimation активные входные данные могут управлять ExpressionAnimation.

CreateWithOwner(Compositor, IInteractionTrackerOwner)

Создает экземпляр InteractionTracker с указанным владельцем.

Этот метод Create создаст экземпляр InteractionTracker с владельцем для регистрации для обратных вызовов. После создания InteractionTracker настройки свойств, присоединения VisualInteractionSource и ссылки на позицию или масштаб в ExpressionAnimation активные входные данные могут управлять ExpressionAnimation. Создание InteractionTracker с владельцем требуется только в том случае, если приложению необходимо получать обратные вызовы относительно состояния и значений InteractionTracker.

DisconnectAnimation(String)

Отключает анимацию.

(Унаследовано от CompositionObject)
Dispose()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

(Унаследовано от CompositionObject)
GetBindingMode(InteractionTracker, InteractionTracker)

Извлекает режим оси привязки между двумя средствами отслеживания взаимодействия.

PopulatePropertyInfo(String, AnimationPropertyInfo)

Определяет свойство, которое можно анимировать.

(Унаследовано от CompositionObject)
SetBindingMode(InteractionTracker, InteractionTracker, InteractionBindingAxisModes)

Задает режим оси привязки между двумя средствами отслеживания взаимодействия.

StartAnimation(String, CompositionAnimation)

Подключает анимацию к указанному свойству объекта и запускает анимацию.

(Унаследовано от CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Подключает анимацию к указанному свойству объекта и запускает анимацию.

(Унаследовано от CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Запускает группу анимации.

Метод StartAnimationGroup в CompositionObject позволяет запустить CompositionAnimationGroup. Все анимации в группе будут запущены одновременно для объекта .

(Унаследовано от CompositionObject)
StopAnimation(String)

Отключает анимацию от указанного свойства и останавливает анимацию.

(Унаследовано от CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Останавливает группу анимации.

(Унаследовано от CompositionObject)
TryGetAnimationController(String)

Возвращает AnimationController для анимации, выполняемой с указанным свойством.

(Унаследовано от CompositionObject)
TryUpdatePosition(Vector3)

Пытается обновить позицию InteractionTracker.

Метод TryUpdatePosition обновляет расположение InteractionTracker до позиции Vector3, указанной в качестве параметра. TryUpdatePosition используется для декларативного определения позиции InteractionTracker в любой момент времени (либо при запуске, из какого-либо события, введенного в состояние, и т. д.). TryUpdatePosition можно вызвать из состояния Idle, CustomAnimation или Инерция. Это приведет к перемещению позиции InteractionTracker в определенную позицию и переходу в состояние простоя.

TryUpdatePosition(Vector3, InteractionTrackerClampingOption)

Пытается обновить позицию InteractionTracker с помощью указанного параметра закрепления.

TryUpdatePosition(Vector3, InteractionTrackerClampingOption, InteractionTrackerPositionUpdateOption)

Пытается обновить позицию InteractionTracker с помощью указанного параметра закрепления.

TryUpdatePositionBy(Vector3)

Пытается изменить позицию InteractionTracker на указанную величину.

Метод TryUpdatePositionBy обновляет текущее расположение InteractionTracker с помощью дельты Vector3, указанной в качестве параметра. Как и в случае с TryUpdatePosition, TryUpdatePositionBy используется для декларативного перемещения InteractionTracker по определенному разностному значению без необходимости анимации или инерции. TryUpdatePositionBy можно вызвать из состояния Idle, CustomAnimation или Инерция. Это приведет к перемещению позиции InteractionTracker на определенную дельту и перейдет в состояние простоя.

TryUpdatePositionBy(Vector3, InteractionTrackerClampingOption)

Пытается настроить положение InteractionTracker на указанную величину с помощью указанного параметра закрепления.

TryUpdatePositionWithAdditionalVelocity(Vector3)

Пытается обновить позицию InteractionTracker путем добавления скорости.

Метод TryUpdatePositionWithAdditionalVelocity добавляет входной Vector3, представляющий дополнительную скорость к текущей скорости InteractionTracker. В результате, так как скорость InteractionTracker теперь изменилась, целевая позиция отдыха для InteractionTracker теперь меняется. TryUpdatePositionWithAdditionalVelocity можно вызвать из состояний "Бездействие", "Инерция" или "CustomAnimation". Это приведет к добавлению или обновлению скорости InteractionTracker и переходу в состояние Инерция.

TryUpdatePositionWithAnimation(CompositionAnimation)

Пытается обновить позицию InteractionTracker путем применения анимации.

Метод TryUpdatePositionWithAnimation обновляет позицию InteractionTracker на основе входных данных CompositionAnimation в качестве параметра. Этот метод используется в ситуациях, когда движение InteractionTracker должно определяться определенной анимацией, а не традиционным интерфейсом инерции. TryUpdatePositionWithAnimation можно вызвать из состояния "Бездействие" или "Инерция". Таким образом, позиция InteractionTracker будет управляться определенной анимацией и перейдет в состояние CustomAnimation.

TryUpdateScale(Single, Vector3)

Пытается обновить масштаб до указанного значения.

Метод TryUpdateScale обновляет расположение шкалы InteractionTracker до позиции scale и центральной точки, указанной в качестве параметра. TryUpdateScale используется для декларативного определения масштаба InteractionTracker в любой момент времени (в начале, из какого-либо события, введенного в состояние и т. д.). TryUpdateScale можно вызвать из состояния Idle, CustomAnimation или Инерция. Это приведет к перемещению позиции шкалы InteractionTracker в определенную позицию и переходу в состояние простоя.

TryUpdateScaleWithAdditionalVelocity(Single, Vector3)

Пытается обновить масштаб путем добавления указанной скорости.

Метод TryUpdateScaleWithAdditionalVelocity добавляет входной скаляр, представляющий дополнительную скорость, к текущей скорости InteractionTracker , а также перемещает центральную точку на входной объект Vector3. В результате, поскольку скорость InteractionTracker теперь изменилась, целевая позиция масштабирования rest для InteractionTracker теперь меняется. TryUpdateScaleWithAdditionalVelocity можно вызвать из состояний "Бездействие", "Инерция" или CustomAnimation. Это приведет к добавлению или обновлению скорости InteractionTracker и переходу в состояние Инерция.

TryUpdateScaleWithAnimation(CompositionAnimation, Vector3)

Пытается обновить масштаб с помощью указанной анимации.

Метод TryUpdateScaleWithAnimation обновляет положение шкалы InteractionTracker на основе compositionAnimation , введенного в качестве параметра. Этот метод используется в ситуациях, когда движение InteractionTracker должно определяться определенной анимацией, а не традиционным интерфейсом инерции. TryUpdateScaleWithAnimation можно вызвать из состояния "Бездействие" или "Инерция". Для этого позиция InteractionTracker будет управляться определенной анимацией и перейдет в состояние CustomAnimation.

Применяется к

См. также раздел