Condividi tramite


ElasticEase Classe

Definizione

Rappresenta una funzione di interpolazione che crea un'animazione simile a una molla che oscilla avanti e indietro fino ad arrestarsi.

public ref class ElasticEase sealed : EasingFunctionBase
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ElasticEase final : EasingFunctionBase
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ElasticEase : EasingFunctionBase
Public NotInheritable Class ElasticEase
Inherits EasingFunctionBase
<ElasticEase .../>
Ereditarietà
Object Platform::Object IInspectable DependencyObject EasingFunctionBase ElasticEase
Attributi

Esempio

Questo esempio XAML applica una funzione di interpolazione ElasticEase a doubleAnimation per creare un'animazione simile a una molla che oscilla avanti e indietro fino a quando non arriva a riposo.

<StackPanel x:Name="LayoutRoot" >
    <StackPanel.Resources>
        <Storyboard x:Name="myStoryboard">
            <DoubleAnimation From="1" To="6" Duration="00:00:3" 
                Storyboard.TargetName="rectScaleTransform" 
                Storyboard.TargetProperty="ScaleY">
                <DoubleAnimation.EasingFunction>
                    
                    <!-- Elastic easing function assigned to From/To animation -->
                    <ElasticEase x:Name="myElasticEase" Oscillations="3" 
                     Springiness="1" EasingMode="EaseOut"/>
                </DoubleAnimation.EasingFunction>
            </DoubleAnimation>
        </Storyboard>
    </StackPanel.Resources>

    <Rectangle PointerPressed="Pointer_Clicked" 
     Fill="Blue" Width="200" Height="30">
        <Rectangle.RenderTransform>
            <ScaleTransform x:Name="rectScaleTransform" />
        </Rectangle.RenderTransform>
    </Rectangle>

</StackPanel>
// When the user clicks the rectangle, the animation
// begins. 
private void Pointer_Clicked(object sender, PointerRoutedEventArgs e)
{
    myStoryboard.Begin();
}

Commenti

ElasticEase è una delle due funzioni di interpolazione che possono produrre un valore al di fuori dell'intervallo From/To normale. L'altro è BackEase. Quando inizia la funzione di interpolazione, il valore oscilla positivo e negativo intorno al valore From fino a raggiungere un'ampiezza positiva finale che è il valore To . La proprietà Springiness modifica il carattere sinusoidale di questa oscillazione. Con springiness di 0, l'oscillazione è fondamentalmente sinusoidale e assomiglia a un tipico diagramma del movimento di una molla. Con valori di Springiness più grandi, è come attenuare il movimento della primavera.

La proprietà Oscillations dichiara il numero di volte in cui la funzione oscilla e passa in valori effettivamente inferiori al valore From iniziale.

È possibile ottenere risultati ottimali sperimentando semplicemente le proprietà Springiness, Oscillations e EasingMode fino a quando l'animazione non esegue visivamente ciò che si vuole per lo scenario di valore della proprietà animata.

BounceEase è una funzione di interpolazione simile che funziona bene per l'emulazione fisica nelle animazioni. La differenza con ElasticEase è che un BounceEase non passerà mai all'esterno dell'intervallo From/To . Un altro modo per concettualizzare le due funzioni di interpolazione è che ElasticEase è ciò che si può usare per animare il plucking di una stringa, mentre BounceEase è quello che si potrebbe usare per mostrare il rimbalzo di una palla su una linea o un piano.

Una funzione di interpolazione può essere applicata alle proprietà EasingFunction delle animazioni From/To/By o alle proprietà EasingFunction dei tipi di fotogrammi chiave usati per le varianti Interpolazione delle animazioni con fotogrammi chiave. Per altre info, vedi Animazioni con fotogrammi chiave e animazioni delle funzioni di interpolazione.

Costruttori

ElasticEase()

Inizializza una nuova istanza della classe ElasticEase .

Proprietà

Dispatcher

Restituisce null sempre in un'app SDK per app di Windows. Usare invece DispatcherQueue .

(Ereditato da DependencyObject)
DispatcherQueue

Ottiene l'oggetto a cui è associato l'oggetto DispatcherQueue . DispatcherQueue Rappresenta una funzionalità che può accedere a nel thread dell'interfaccia DependencyObject utente anche se il codice viene avviato da un thread non dell'interfaccia utente.

(Ereditato da DependencyObject)
EasingMode

Ottiene o imposta un valore che specifica il modo in cui viene eseguita l'interpolazione dell'animazione.

(Ereditato da EasingFunctionBase)
Oscillations

Ottiene o imposta il numero di volte in cui la destinazione scorre avanti e indietro sulla destinazione dell'animazione.

OscillationsProperty

Identifica la proprietà di dipendenza Oscillations .

Springiness

Ottiene o imposta la rigidità della molla. Minore è il valore di Springiness, più rigida sarà la molla e maggiore sarà l'elasticità diminuendo di intensità a ogni oscillazione.

SpringinessProperty

Identifica la proprietà di dipendenza Springiness .

Metodi

ClearValue(DependencyProperty)

Cancella il valore locale di una proprietà di dipendenza.

(Ereditato da DependencyObject)
Ease(Double)

Trasforma il tempo normalizzato per controllare la velocità di un'animazione.

(Ereditato da EasingFunctionBase)
GetAnimationBaseValue(DependencyProperty)

Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva.

(Ereditato da DependencyObject)
GetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza da dependencyObject.

(Ereditato da DependencyObject)
ReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se è impostato un valore locale.

(Ereditato da DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una funzione di notifica per l'ascolto delle modifiche apportate a una dipendenza specifica in questa istanza di DependencyObject .

(Ereditato da DependencyObject)
SetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza su dependencyObject.

(Ereditato da DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback.

(Ereditato da DependencyObject)

Si applica a

Vedi anche