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
Анимация, применяемая к шкале.
Возвращаемое значение
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 , не нужно вызывать Microsoft.UI.Composition.CompositionObject.StartAnimation. Система позаботится об этом в фоновом режиме после того, как анимация будет передана через TryUpdateScaleWithAnimation.
При определении анимации, которая будет анимировать позицию масштабирования InteractionTracker , обязательно используйте ScalarKeyFrameAnimation или ExpressionAnimation , которая разрешается в Scalar.
В таблице ниже приведена сводка ожидаемого поведения при вызове этого метода в определенном состоянии:
Текущее состояние | Результат |
---|---|
Бездействие | Запрошенная анимация начинается с запрошенного свойства, состояние изменяется на CustomAnimation |
Взаимодействие | Запрос игнорируется |
Инерция | Запрошенная анимация начинается с запрошенного свойства, состояние изменяется на CustomAnimation |
CustomAnimation | Текущая анимация останавливается, а новая запрошенная анимация запускается при запрошенном свойстве, состояние снова вводит CustomAnimation |