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


ScaleAnimation Класс

Определение

Предоставляет методы, позволяющие получить параметры для анимации масштабирования (растущей или сжимающейся).

public ref class ScaleAnimation sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.UI.Core.AnimationMetrics.AnimationMetricsContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class ScaleAnimation final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.UI.Core.AnimationMetrics.AnimationMetricsContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class ScaleAnimation
Public NotInheritable Class ScaleAnimation
Наследование
Object Platform::Object IInspectable ScaleAnimation
Атрибуты
Реализации

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

Семейство устройств
Windows Desktop Extension SDK (появилось в 10.0.10240.0)
API contract
Windows.UI.Core.AnimationMetrics.AnimationMetricsContract (появилось в v1.0)

Примеры

Чтобы получить экземпляр класса ScaleAnimation, сначала получите коллекцию анимаций в описании анимации, а затем выполните обход по массиву анимаций, чтобы найти любой объект, имеющий тип scale. Этот процесс показан в следующих примерах. Предполагается, что ранее были назначены параметры эффекта и целевого объекта .

using Windows.UI.Core.AnimationMetrics;

AnimationDescription animationDescription = new AnimationDescription(effect, target);
foreach (var animation in animationDescription.Animations)
{
    switch (animation.Type)
    {
        case PropertyAnimationType.Scale:
            {
                ScaleAnimation scale = animation as ScaleAnimation;
                // Retrieve scale animation metrics.
            }
            break;
        case PropertyAnimationType.Translation:
            {
                TranslationAnimation scale = animation as TranslationAnimation;
                // Retrieve translation animation metrics.
            }
            break;
        case PropertyAnimationType.Opacity:
            {
                OpacityAnimation opacity = animation as OpacityAnimation;
                // Retrieve opacity animation metrics.
            }
            break;
    }
}

Комментарии

Масштаб — это фактор, применяемый к объекту в направлении X или Y. Значение шкалы 1,0 означает отсутствие масштабирования, меньше 1 — сжатие, а больше 1 — увеличение.

Исходная точка шкалы представляет центральную точку, вокруг которой должно выполняться масштабирование. Эта точка остается фиксированной на протяжении всей анимации; он не анимировать. Источник указывается в виде доли размера объекта. Например, NormalizedOrigin. X из 0,25 представляет точку 25 % пути от левого края к правому краю объекта. Если объект имеет ширину 100 пикселей, то значение NormalizedOrigin. X представляет точку в 25 пикселях от левого края объекта.

Примечание

Чувство слева и вправо переворачивается в системах справа налево (RTL).

В качестве примера рассмотрим объект, прямоугольник координат которого имеет значение (100, 150, 200, 300), выраженное в формате (слева, сверху, справа, внизу). Предположим, что интерполированный X-масштаб равен 0,4, интерполированный масштаб Y равен 2,0, X-источник — 0,25, а источник Y — 0,80.

Сначала преобразуйте нормализованные исходные значения в пиксели. Ширина объекта составляет 100 пикселей, а x-источник получается как 0,25, что приводит к x-источнику 25 пикселей слева от объекта. Так как левая координата объекта составляет 100, координата X источника — 125.

Аналогичным образом высота объекта составляет 150 пикселей, а источник Y — 0,80, что приводит к 120 пикселям по Y от верхней части объекта. Так как верхняя координата объекта составляет 150, координата Y источника — 245.

Чтобы применить преобразование масштаба, мы сначала преобразуем объект по отрицательному значению источника, переместив его в (-25, -95, 75, 55). Далее мы умножаем левую и правую координаты на шкалу X, а верхнюю и нижнюю координаты — на шкалу Y, что приводит к (-10, -190, 30, 110). Наконец, мы переводим объект по источнику, что приводит к (115, 55, 155, 300).

Свойства InitialScaleX и InitialScaleY гарантированно будут как заданы, так и не заданы. Если они не заданы, в качестве начального значения анимации следует использовать текущий масштаб объектов.

Элементы управления временем Control1 и Control2 определяют расположение первой и второй контрольных точек кубической кривой Безье. Эти две точки имеют то же значение, что и в свойстве css transition-timing-function . Контрольная точка ноль всегда имеет значение (0,0), а контрольная точка 3 — всегда (1,1). Координаты Control1 и Control2 всегда находятся в диапазоне от 0 до 1 включительно.

На результирующей кривой Безье координата X представляет время, а координата Y — ход выполнения. Необработанная кривая от (0,0) до (1,1) масштабируется в соответствии с фактической длительностью и диапазоном анимированного перехода, так что x=0 — время начала преобразования, x=1 — время окончания, y=0 — начальное значение анимированного свойства, а y=1 — конечное значение. Значения x и y в диапазоне от 0 до 1 представляют собой соответствующие промежуточные значения времени и анимации.

Свойства

Control1

Возвращает расположение первой контрольной точки для кубической кривой Безье, которая описывает, как шкала должна анимироваться с течением времени.

Control2

Возвращает расположение второй контрольной точки для кубической кривой Безье, которая описывает, как шкала должна анимироваться с течением времени.

Delay

Возвращает интервал времени между началом анимации масштабирования и фактическим началом рисования анимации.

Duration

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

FinalScaleX

Возвращает окончательный горизонтальный коэффициент масштабирования для объекта .

FinalScaleY

Возвращает окончательный вертикальный коэффициент масштабирования для объекта .

InitialScaleX

Возвращает начальный коэффициент горизонтального масштабирования для объекта .

InitialScaleY

Возвращает начальный коэффициент вертикального масштабирования для объекта .

NormalizedOrigin

Возвращает центральную точку для анимации масштабирования, выраженную в виде точки относительно нормального размера объекта.

Type

Возвращает тип анимации, представленной этим объектом.

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

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