Condividi tramite


ScaleAnimation Classe

Definizione

Fornisce metodi che consentono di recuperare i parametri per un'animazione di scalabilità (crescente o compattazione).

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
Ereditarietà
Object Platform::Object IInspectable ScaleAnimation
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows Desktop Extension SDK (è stato introdotto in 10.0.10240.0)
API contract
Windows.UI.Core.AnimationMetrics.AnimationMetricsContract (è stato introdotto in v1.0)

Esempio

Per ottenere un'istanza della classe ScaleAnimation, è prima possibile ottenere la raccolta di animazioni nella descrizione dell'animazione e quindi seguire questa matrice di animazioni per trovare qualsiasi tipo di scala. Gli esempi seguenti illustrano questo processo. Si presuppone che siano stati assegnati in precedenza gli effetti e i parametri di destinazione .

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;
    }
}

Commenti

La scala è un fattore applicato all'oggetto nella direzione x- o y. Un valore di scala pari a 1,0 non rappresenta il ridimensionamento, minore di 1 rappresenta la compattazione e maggiore di 1 rappresenta l'ingrandimento.

Il punto di origine di una scala rappresenta il punto centrale intorno al quale deve essere eseguita la scalabilità. Questo punto rimane fisso durante l'animazione; non anima. L'origine viene dichiarata come frazione della dimensione dell'oggetto. Ad esempio, un NormaldOrigin. X di 0,25 rappresenta un punto del 25% del modo dal bordo sinistro al bordo destro dell'oggetto. Se l'oggetto è di 100 pixel a larghezza, un oggetto NormaldOrigin. X rappresenta un punto 25 pixel dal bordo sinistro dell'oggetto.

Nota

Il senso di sinistra e destra viene capovolto nei sistemi RTL (right-to-left).

Si consideri, ad esempio, un oggetto il cui rettangolo di coordinata è (100, 150, 200, 300), espresso in formato (sinistro, superiore, destro, inferiore). Si supponga che la scala x interpolata sia 0,4, la scala y interpolata è 2,0, l'origine x è 0,25 e l'origine y è 0,80.

Prima di tutto, convertire i valori di origine normalizzati in pixel. La larghezza dell'oggetto è di 100 pixel e l'origine x viene assegnata come 0,25, che genera un'origine x di 25 pixel dalla sinistra dell'oggetto. Poiché la coordinata sinistra dell'oggetto è 100, la coordinata x dell'origine è 125.

Analogamente, l'altezza dell'oggetto è di 150 pixel e l'origine y è 0,80, che genera un'origine y di 120 pixel dall'inizio dell'oggetto. Poiché la coordinata superiore dell'oggetto è 150, la coordinata y dell'origine è 245.

Per applicare la trasformazione di scala, si traduce innanzitutto l'oggetto dal negativo dell'origine, spostandolo su (-25, -95, 75, 55). Moltiplicare quindi le coordinate a sinistra e destra in base alla scala x e alle coordinate superiori e inferiori in base alla scala y, che comporta (-10, -190, 30, 110). Infine, si traduce l'oggetto dall'origine, che comporta (115, 55, 155, 300).

Le proprietà InitialScaleX e InitialScaleY devono essere impostate o entrambe. Se non sono impostati, la scala dell'oggetto corrente deve essere usata come valore iniziale dell'animazione.

I controlli di intervallo Control1 e Control2 specificano la posizione dei punti di controllo primo e secondo di una curva di Bézier cubica. Questi due punti hanno lo stesso significato che hanno nella proprietà di transizione CSS-time-function . Il punto di controllo zero è sempre (0,0) e il punto di controllo tre è sempre (1,1). Le coordinate di Control1 e Control2 sono sempre incluse nell'intervallo compreso tra 0 e 1.

Nella curva di Bézier risultante, la coordinata x rappresenta l'ora e la coordinata y rappresenta lo stato di avanzamento. La curva non elaborata da (0,0) a (1,1) viene ridimensionata in modo da corrispondere alla durata effettiva e all'intervallo della transizione animata, in modo che x=0 sia l'ora iniziale della trasformazione, x=1 è l'ora finale, y=0 è il valore iniziale della proprietà animata e y=1 è il valore finale. I valori x e y compresi tra 0 e 1 rappresentano i valori intermedi corrispondenti del tempo e dell'animazione.

Proprietà

Control1

Ottiene la posizione del primo punto di controllo per la curva di Bézier cubica che descrive come la scala deve animare nel tempo.

Control2

Ottiene la posizione del secondo punto di controllo per la curva di Bézier cubica che descrive come la scala deve animare nel tempo.

Delay

Ottiene l'intervallo di tempo compreso tra quando l'animazione di scala viene incaricata di iniziare e quando l'animazione inizia effettivamente a disegnare.

Duration

Ottiene la quantità di tempo in cui deve essere eseguita l'animazione di scalabilità. Questo non include il ritardo.

FinalScaleX

Ottiene il fattore di scala orizzontale finale per l'oggetto.

FinalScaleY

Ottiene il fattore di scala verticale finale per l'oggetto.

InitialScaleX

Ottiene il fattore di scala orizzontale iniziale per l'oggetto.

InitialScaleY

Ottiene il fattore di scala verticale iniziale per l'oggetto.

NormalizedOrigin

Ottiene il punto centrale per l'animazione di ridimensionamento, espressa come punto rispetto alle dimensioni normali dell'oggetto.

Type

Ottiene il tipo di animazione rappresentato da questo oggetto.

Si applica a

Vedi anche