DiscreteColorKeyFrame 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.
Aggiunge un'animazione dal valore Color del fotogramma chiave precedente al relativo valore Value usando valori discreti.
public ref class DiscreteColorKeyFrame sealed : ColorKeyFrame
/// [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 DiscreteColorKeyFrame final : ColorKeyFrame
[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 DiscreteColorKeyFrame : ColorKeyFrame
Public NotInheritable Class DiscreteColorKeyFrame
Inherits ColorKeyFrame
<DiscreteColorKeyFrame .../>
- Ereditarietà
- Attributi
Esempio
Questo esempio XAML usa la classe ColorAnimationUsingKeyFrames per animare la proprietà Background di un oggetto StackPanel. Questa animazione usa tre fotogrammi chiave nel modo seguente:
- Durante i primi due secondi, LinearColorKeyFrame modifica gradualmente il colore da verde a rosso. I fotogrammi chiave lineari come LinearColorKeyFrame creano una transizione lineare uniforme tra i valori.
- Durante la fine della seconda metà successiva, DiscreteColorKeyFrame cambia rapidamente il colore da rosso a giallo. Fotogrammi chiave discreti come DiscreteColorKeyFrame creano cambiamenti improvvisi tra i valori; l'animazione viene eseguita rapidamente e non ha alcuna interpolazione tra i valori.
- Durante i due secondi finali, SplineColorKeyFrame cambia di nuovo il colore, questa volta dal giallo al verde. I fotogrammi chiave spline come SplineColorKeyFrame creano una transizione variabile tra i valori in base ai valori della proprietà KeySpline . Una chiaveSpline consente di modificare la relazione tra tempo e valore durante la durata dell'animazione in modo che non sia lineare e, in particolare, la relazione può essere una curva che sarebbe difficile da produrre con singoli fotogrammi chiave. In questo esempio, il cambio di colore inizia lentamente, quindi accelera in modo esponenziale verso la fine del segmento temporale.
<StackPanel x:Name="myStackPanel" Background="Red"
Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<ColorAnimationUsingKeyFrames Storyboard.TargetName="myStackPanel"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
<!-- Go from green to red in the first 2 seconds. LinearColorKeyFrame creates
a smooth, linear animation between values. -->
<LinearColorKeyFrame Value="Blue" KeyTime="00:00:02" />
<!-- In the next half second, go to yellow. DiscreteColorKeyFrame creates a
sudden jump between values. -->
<DiscreteColorKeyFrame Value="Yellow" KeyTime="00:00:2.5" />
<!-- In the final 2 seconds of the animation, go from yellow back to green. SplineColorKeyFrame
creates a variable transition between values depending on the KeySpline property. In this example,
the animation starts off slow but toward the end of the time segment, it speeds up exponentially.-->
<SplineColorKeyFrame Value="Green" KeyTime="00:00:4.5" KeySpline="0.6,0.0 0.9,0.00" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</StackPanel.Resources>
</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
colorStoryboard.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
DiscreteColorKeyFrame() |
Inizializza una nuova istanza della classe DiscreteColorKeyFrame . |
Proprietà
Dispatcher |
Restituisce |
DispatcherQueue |
Ottiene l'oggetto a cui è associato l'oggetto |
KeyTime |
Ottiene o imposta l'ora in cui deve essere raggiunto il valore di destinazione del fotogramma chiave. (Ereditato da ColorKeyFrame) |
Value |
Ottiene o imposta il valore di destinazione del fotogramma chiave. (Ereditato da ColorKeyFrame) |
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) |