ScaleAnimation Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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. |