Поделиться через


InteractionTrackerInertiaMotion Класс

Определение

ExpressionAnimation, определяющий движение InteractionTracker в состоянии инерции.

Класс InteractionTrackerMotion содержит два объекта ExpressionAnimation, представляющих второе производное уравнение позиции InteractionTracker будет использовать для определения движения от начала до конца инерции при выполнении определенного условия. Класс InteractionTrackerMotion определяется как две части: условный оператор, определяющий, когда будет происходить движение, и уравнение, описывающее движение для того, как InteractionTracker достигнет своей конечной позиции упокоения. Используйте класс InteractionTrackerInertiaMotion, если необходимо определить настраиваемое движение (например, движение пружины) для InteractionTracker , которое будет использоваться в состоянии инерции.

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

Примеры

void CustomSpringInertiaMotion(float dampingCoefficient, 	float springStiffnessCoefficient)
{
  //
  // Set up our inertia modifiers to use our custom motion
  //
  InteractionTrackerInertiaMotion[] modifiers = 
  new InteractionTrackerInertiaMotion[1];

  var modifier1 = InteractionTrackerInertiaMotion.Create(_compositor);

  /*
  We create a custom spring motion for when the InteractionTracker passes the
  maximum boundary. 
  When we hit the boundary, the amount of oscillation is determined by the 	distance to the far end point, the spring stiffness and damping rate.
  */ 

  // Define the condition that the spring motion gets applied – when we pass the
  // maximum boundary
  modifier1.Condition = _compositor.CreateExpressionAnimation(
  "this.Target.NaturalRestingPosition.X > this.Target.MaxPosition.X");

  // Define the second derivative equation as a custom spring force motion
  // Equation = kx–cv where (k is spring constant, c is damping, x is displacement)
  modifier1.Motion = _compositor.CreateExpressionAnimation(
    "(-springStiffnessCoefficient * (this.Target.Position.X – this.Target.MaxPosition.X)) + " +
    "(-dampingCoefficient * target.PositionVelocityInPixelsPerSecond.X");

  modifier1.Motion.SetScalarParameter("springStiffnessCoefficient", springStiffnessCoefficient);
  modifier1.Motion.SetScalarParameter("dampingCoefficient", dampingCoefficient);

  modifiers[0] = modifier1;

  // Attach InertiaModifiers to the Y position component of InteractionTracker
  _tracker.ConfigurePositionYInertiaModifiers(modifiers);
}

Комментарии

При создании ExpressionAnimation для компонента движения InteractionTrackerInertiaMotion выражение описывается как второе производное уравнение. Например, в приведенном выше фрагменте кода мы используем базовое уравнение для движения Spring Force с демпфированием.

При присоединении модификатора InteractionTrackerInertiaMotion к InteractionTracker вы настраиваете его на положение X/Y или Scale.

ВыражениеAnimation, определяющее свойство условия, вычисляется только один раз, когда InteractionTracker входит в инерцию (например, когда взаимодействие завершается, например, отпущен палец). Если условие принимает значение true, выражение InertiaMotion вычисляется по каждому кадру для оставшейся части инерции, даже если выражение условия технически больше не соответствует действительности.

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

Свойства

Comment

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

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

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

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

ExpressionAnimation, описывающий, когда следует применить модификатор.

Свойство Condition — это ExpressionAnimation , которое определяет, когда указанное уравнение движения используется InteractionTracker во время инерции. Это выражение вычисляется один раз после взаимодействия и должно разрешаться в тип Bool, в противном случае при оценке условия возникнет ошибка. Дополнительные сведения о создании выражений см. на странице класса ExpressionAnimation .

DispatcherQueue

Возвращает DispatcherQueue для CompositionObject.

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

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

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

ВыражениеAnimation, описывающее измененное движение для InteractionTracker, если выражение в свойстве Condition имеет значение true.

Свойство Motion — это expressionAnimation , описывающее движение InteractionTracker , которое будет использовать во время инерции при выполнении соответствующего условия. Выражение будет вычисляться каждый кадр, пока InteractionTracker находится в инерции и должно разрешаться в тип Float, в противном случае при вычислении уравнения будет возникать ошибка. Дополнительные сведения о создании выражений см. на странице класса ExpressionAnimation .

Properties

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

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

Методы

Close()

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

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

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

Dispose()

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

(Унаследовано от CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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