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


InteractionTracker.TryUpdateScaleWithAnimation Метод

Определение

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

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

public:
 virtual int TryUpdateScaleWithAnimation(CompositionAnimation ^ animation, float3 centerPoint) = TryUpdateScaleWithAnimation;
int TryUpdateScaleWithAnimation(CompositionAnimation const& animation, float3 const& centerPoint);
public int TryUpdateScaleWithAnimation(CompositionAnimation animation, Vector3 centerPoint);
function tryUpdateScaleWithAnimation(animation, centerPoint)
Public Function TryUpdateScaleWithAnimation (animation As CompositionAnimation, centerPoint As Vector3) As Integer

Параметры

animation
CompositionAnimation

Анимация, применяемая к шкале.

centerPoint
Vector3 Vector3

float3

Новая центральная точка.

Возвращаемое значение

Int32

int

Возвращает идентификатор запроса. При переходе состояния запрос, вызваввший изменение состояния, будет включен в аргументы . Эти идентификаторы будут начинаться с 1 и увеличиваться с каждым вызовом try в течение жизненного цикла приложения.

Примеры

void CustomAnimationForIT(float newScale, Vector3 newCenterPoint)
{
  // Create a cubic bezier easing function that will be used in the KeyFrames
  CompositionEasingFunction cubicBezier = _compositor.CreateCubicBezierEasingFunction(new Vector2(.17f, .67f), new Vector2(1f, 1f);

  // Create the Vector3 KFA
  ScalarKeyFrameAnimation kfa = _compositor.CreateScalarKeyFrameAnimation();
  kfa.Duration = TimeSpan.FromSeconds(3);

  // Create the KeyFrames
  kfa.InsertKeyFrame(1.0f, newScale, cubicBezier);

  // Update InteractionTracker position using this animation
  _tracker.TryUpdatePositionWithAnimation(kfa, newCenterPoint);
}

Комментарии

При создании анимации, с которой требуется обновить позицию InteractionTracker , не нужно вызывать StartAnimation. Система позаботится об этом в фоновом режиме после того, как анимация будет передана через TryUpdateScaleWithAnimation.

При определении анимации, которая будет анимировать положение шкалы InteractionTracker , обязательно используйте ScalarKeyFrameAnimation или ExpressionAnimation , который разрешается в Scalar.

В таблице ниже приведена сводка ожидаемого поведения при вызове этого метода в определенном состоянии:

Текущее состояниеРезультат
БездействиеЗапрошенная анимация начинается при запрошенном свойстве, состояние изменяется на CustomAnimation
ВзаимодействиеЗапрос игнорируется
ИнерцияЗапрошенная анимация начинается при запрошенном свойстве, состояние изменяется на CustomAnimation
CustomAnimationТекущая анимация останавливается, а новая запрошенная анимация запускается для запрошенного свойства, состояние снова вступает в CustomAnimation

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