ElasticEase 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.
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à
- 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 |
DispatcherQueue |
Ottiene l'oggetto a cui è associato l'oggetto |
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) |