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
- Наследование
- Атрибуты
- Реализации
Требования к 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 |
Возвращает тип анимации, представленной этим объектом. |