SplineDoubleKeyFrame 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.
public ref class SplineDoubleKeyFrame sealed : DoubleKeyFrame
/// [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 SplineDoubleKeyFrame final : DoubleKeyFrame
[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 SplineDoubleKeyFrame : DoubleKeyFrame
Public NotInheritable Class SplineDoubleKeyFrame
Inherits DoubleKeyFrame
<SplineDoubleKeyFrame .../>
- Ereditarietà
- Attributi
Esempio
Questo esempio XAML sposta un rettangolo su uno schermo. Nell'esempio viene utilizzata la classe DoubleAnimationUsingKeyFrames per animare la proprietà X di un oggetto TranslateTransform applicato a un oggetto Rectangle. Questa animazione usa tre fotogrammi chiave nel modo seguente:
- Durante i primi tre secondi, usa un'istanza della classe LinearDoubleKeyFrame per spostare il rettangolo lungo un percorso a una velocità costante dalla posizione iniziale alla posizione 500. I fotogrammi chiave lineari come LinearDoubleKeyFrame creano una transizione lineare uniforme tra i valori.
- Alla fine del quarto secondo, usa un'istanza della classe DiscreteDoubleKeyFrame per spostare improvvisamente il rettangolo nella posizione successiva. Fotogrammi chiave discreti come DiscreteDoubleKeyFrame creano salti improvvisi tra i valori. In questo esempio, il rettangolo si trova in corrispondenza della posizione iniziale e improvvisamente appare nella posizione 500.
- Negli ultimi due secondi, usa un'istanza della classe SplineDoubleKeyFrame per spostare il rettangolo nella posizione iniziale. I fotogrammi chiave spline, ad esempio SplineDoubleKeyFrame, creano una transizione variabile tra i valori in base al valore della proprietà KeySpline . In questo esempio, il rettangolo inizia a spostarsi lentamente e quindi accelera in modo esponenziale verso la fine del segmento temporale.
<StackPanel>
<StackPanel.Resources>
<Storyboard x:Name="myStoryboard">
<!-- Animate the TranslateTransform's X property
from 0 to 350, then 50,
then 200 over 10 seconds. -->
<DoubleAnimationUsingKeyFrames
Storyboard.TargetName="MyAnimatedTranslateTransform"
Storyboard.TargetProperty="X"
Duration="0:0:10" EnableDependentAnimation="True">
<!-- Using a LinearDoubleKeyFrame, the rectangle moves
steadily from its starting position to 500 over
the first 3 seconds. -->
<LinearDoubleKeyFrame Value="500" KeyTime="0:0:3" />
<!-- Using a DiscreteDoubleKeyFrame, the rectangle suddenly
appears at 400 after the fourth second of the animation. -->
<DiscreteDoubleKeyFrame Value="400" KeyTime="0:0:4" />
<!-- Using a SplineDoubleKeyFrame, the rectangle moves
back to its starting point. The
animation starts out slowly at first and then speeds up.
This KeyFrame ends after the 6th
second. -->
<SplineDoubleKeyFrame KeySpline="0.6,0.0 0.9,0.00" Value="0" KeyTime="0:0:6" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</StackPanel.Resources>
<Rectangle Fill="Blue" Width="50" Height="50" Loaded="Start_Animation">
<Rectangle.RenderTransform>
<TranslateTransform x:Name="MyAnimatedTranslateTransform"
X="0" Y="0" />
</Rectangle.RenderTransform>
</Rectangle>
</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
Commenti
Le animazioni con fotogrammi chiave consentono più di un valore di destinazione raggiunto lungo la sequenza temporale dell'animazione. In altre parole, ogni fotogramma chiave può specificare un valore intermedio diverso e l'ultimo fotogramma raggiunto è il valore finale dell'animazione. Specificando più valori da animare è possibile creare animazioni più complesse. È possibile combinare fotogrammi chiave discreti, lineari e spline nella stessa raccolta di fotogrammi chiave.
Per altre info su come usare le animazioni con fotogrammi chiave, vedi Animazioni con fotogrammi chiave e animazioni di funzioni di interpolazione.
Costruttori
SplineDoubleKeyFrame() |
Inizializza una nuova istanza della classe SplineDoubleKeyFrame . |
Proprietà
Dispatcher |
Restituisce |
DispatcherQueue |
Ottiene l'oggetto a cui è associato l'oggetto |
KeySpline |
Ottiene o imposta i due punti di controllo che definiscono l'avanzamento dell'animazione per questo fotogramma chiave. |
KeySplineProperty |
Identifica la proprietà di dipendenza KeySpline . |
KeyTime |
Ottiene o imposta l'ora in cui deve essere raggiunto il valore di destinazione del fotogramma chiave. (Ereditato da DoubleKeyFrame) |
Value |
Ottiene o imposta il valore di destinazione del fotogramma chiave. (Ereditato da DoubleKeyFrame) |
Metodi
ClearValue(DependencyProperty) |
Cancella il valore locale di una proprietà di dipendenza. (Ereditato da DependencyObject) |
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) |