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 类的实例,请先获取动画说明中的动画集合,然后遍查该动画数组以查找具有类型缩放的任何动画。 以下示例演示此过程。 假定 先前 已分配效果参数和 目标 参数。

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,这会导致 y 原点距对象顶部 120 像素。 由于对象的顶坐标为 150,因此原点的 y 坐标为 245。

为了应用缩放转换,我们首先将对象转换为原点的负值,将其移动到 (-25、-95、75、55) 。 接下来,我们将左坐标和右坐标乘以 x 刻度,并将顶部和底部坐标乘以 y 刻度,从而生成 (-10、-190、30、110) 。 最后,按原点转换对象,这会导致 (115、55、155、300) 。

InitialScaleXInitialScaleY 属性保证同时设置或两者均未设置。 如果未设置它们,则应将当前对象比例用作动画的初始值。

计时控件 Control1Control2 指定三次方贝塞尔曲线的第一个和第二个控制点的位置。 这两点的含义与 CSS transition-timing-function 属性中的含义相同。 控制点 0 始终 (0,0) 控制点 3 始终 (1,1) 。 Control1Control2 的坐标始终在 0 到 1 的范围内(包括 0 到 1)。

在生成的贝塞尔曲线上,x 坐标表示时间,y 坐标表示进度。 从 (0,0) 到 (1,1) 的原始曲线进行缩放以匹配动画转换的实际持续时间和范围,以便 x=0 是转换的开始时间,x=1 是结束时间,y=0 是动画属性的初始值,y=1 是最终值。 介于 0 和 1 之间的 x 和 y 值表示相应的时间和动画中间值。

属性

Control1

获取描述刻度如何随时间推移进行动画处理的三次方贝塞尔曲线的第一个控制点的位置。

Control2

获取三次方贝塞尔曲线的第二个控制点的位置,该控制点描述刻度应如何随时间推移进行动画处理。

Delay

获取指示缩放动画开始和实际开始绘制该动画之间的时间量。

Duration

获取应执行缩放动画的时间量。 这不包括延迟。

FinalScaleX

获取 对象的最终水平比例系数。

FinalScaleY

获取 对象的最终垂直比例系数。

InitialScaleX

获取 对象的初始水平比例系数。

InitialScaleY

获取 对象的初始垂直比例系数。

NormalizedOrigin

获取缩放动画的中心点,表示为相对于对象的正常大小的点。

Type

获取由此 对象表示的动画的类型。

适用于

另请参阅