次の方法で共有


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 として指定され、オブジェクトの左側から 25 ピクセルの x 原点になります。 オブジェクトの左座標は 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 プロパティは、両方とも設定されるか、両方とも設定されていないことが保証されます。 設定されていない場合は、アニメーションの初期値として現在のオブジェクト スケールを使用する必要があります。

タイミング コントロール Control1Control2 は、3 次ベジエ曲線の 1 番目と 2 番目のコントロール ポイントの位置を指定します。 これら 2 つの点は、CSS 遷移タイミング関数 プロパティと同じ意味を持ちます。 コントロール ポイント 0 は常に (0,0) で、コントロール ポイント 3 は常に (1,1) です。 Control1Control2 の座標は、常に 0 ~ 1 の範囲です。

結果のベジエ曲線では、x 座標は時間を表し、y 座標は進行状況を表します。 (0,0) から (1,1) までの生曲線は、アニメーション化された遷移の実際の継続時間と範囲に合わせてスケーリングされます。x=0 は変換の開始時刻、x=1 は終了時刻、y=0 はアニメーション化されたプロパティの初期値、y=1 は最終的な値です。 0 ~ 1 の x と y の値は、時間とアニメーションの対応する中間値を表します。

プロパティ

Control1

時間の経過に伴うスケールのアニメーション化方法を説明する 3 次ベジエ曲線の最初のコントロール ポイントの位置を取得します。

Control2

3 次ベジエ曲線の 2 番目のコントロール ポイントの位置を取得します。この曲線は、時間の経過に伴うスケールのアニメーション化方法を示します。

Delay

スケール アニメーションを開始するように指示してから、そのアニメーションが実際に描画を開始するまでの時間を取得します。

Duration

スケール アニメーションを実行する時間を取得します。 これには遅延は含まれません。

FinalScaleX

オブジェクトの最終的な水平スケール ファクターを取得します。

FinalScaleY

オブジェクトの最終的な垂直方向のスケールファクターを取得します。

InitialScaleX

オブジェクトの初期水平スケール ファクターを取得します。

InitialScaleY

オブジェクトの最初の垂直スケールファクターを取得します。

NormalizedOrigin

スケーリング アニメーションの中心点を取得します。オブジェクトの通常のサイズを基準としたポイントとして表されます。

Type

このオブジェクトによって表されるアニメーションの種類を取得します。

適用対象

こちらもご覧ください