ColorAnimation 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 ColorAnimation sealed : Timeline
/// [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 ColorAnimation final : Timeline
[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 ColorAnimation : Timeline
Public NotInheritable Class ColorAnimation
Inherits Timeline
<ColorAnimation .../>
- Ereditarietà
- Attributi
Esempio
Nell'esempio seguente viene illustrato come usare ColorAnimation per animare il colore di sfondo di uno StackPanel.
<StackPanel x:Name="myStackPanel" Background="Red"
Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<!-- Animate the background color of the canvas from red to green
over 4 seconds. -->
<ColorAnimation Storyboard.TargetName="myStackPanel"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
From="Red" To="Blue" Duration="0:0:4"/>
</Storyboard>
</StackPanel.Resources>
</StackPanel>
<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>
<StackPanel Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<!-- Animate the background color of the canvas from red to green
over 4 seconds. -->
<ColorAnimation Storyboard.TargetName="mySolidColorBrush"
Storyboard.TargetProperty="Color" From="Red" To="Blue" Duration="0:0:4"/>
</Storyboard>
</StackPanel.Resources>
<StackPanel.Background>
<SolidColorBrush x:Name="mySolidColorBrush" Color="Red" />
</StackPanel.Background>
</StackPanel>
// Start the animation when the object loads.
private void Start_Animation(object sender, RoutedEventArgs e)
{
colorStoryboard.Begin();
}
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
In alternativa, è possibile creare in modo esplicito SolidColorBrush, denominarlo e indirizzarne direttamente la proprietà Color . Nell'esempio seguente viene illustrato come creare la stessa animazione della precedente, ad eccezione della destinazione della proprietà diretta.
<StackPanel Loaded="Start_Animation">
<StackPanel.Resources>
<Storyboard x:Name="colorStoryboard">
<!-- Animate the background color of the canvas from red to green
over 4 seconds. -->
<ColorAnimation Storyboard.TargetName="mySolidColorBrush"
Storyboard.TargetProperty="Color" From="Red" To="Blue" Duration="0:0:4"/>
</Storyboard>
</StackPanel.Resources>
<StackPanel.Background>
<SolidColorBrush x:Name="mySolidColorBrush" Color="Red" />
</StackPanel.Background>
</StackPanel>
// Start the animation when the object loads.
private void Start_Animation(object sender, RoutedEventArgs e)
{
colorStoryboard.Begin();
}
Commenti
Usare ColorAnimation per animare il valore della proprietà di qualsiasi proprietà di dipendenza di tipo Color.
L'interpolazione lineare per un colore indica che ognuno dei valori ARGB viene considerato come byte e l'interpolazione è semplicemente un'operazione matematica. Si ottengono risultati ottimali dall'interpolazione dei colori se almeno uno dei componenti RGB è lo stesso o vicino allo stesso valore sia nel valore iniziale che nel valore finale.
In genere è necessario usare la destinazione della proprietà indiretta per indirizzare una sotto-proprietà di un altro oggetto che rappresenta il valore di una proprietà nella destinazione. Questo perché alcune proprietà che visualizzano le informazioni sul colore negli elementi dell'interfaccia utente sono effettivamente di tipo Color. La maggior parte è invece di tipo Pennello. Per usare ColorAnimation sugli elementi dell'interfaccia utente, in genere si punta alla proprietà Color di un oggetto SolidColorBrush che rappresenta il valore della proprietà secondaria. La sintassi per questa operazione viene visualizzata nell'esempio XAML nella sezione "Esempi". Per altre informazioni sulla destinazione delle proprietà indirette e su altri concetti di animazione storyboard, vedere Animazioni storyboard o sintassi del percorso delle proprietà.
ColorAnimation include in genere almeno una delle proprietà From, By o To , ma non tutte e tre.
- Solo da: L'animazione passa dal valore specificato dalla proprietà From al valore di base della proprietà animata.
- Da e A: L'animazione passa dal valore specificato dalla proprietà From al valore specificato dalla proprietà To .
- Da e per: L'animazione passa dal valore specificato dalla proprietà From al valore specificato dalla somma delle proprietà From e By .
- Solo per: L'animazione viene eseguita dal valore di base della proprietà animata o dal valore di output dell'animazione precedente al valore specificato dalla proprietà To .
- Solo: L'animazione viene eseguita dal valore di base della proprietà animata o dal valore di output dell'animazione precedente alla somma di tale valore e al valore specificato dalla proprietà By .
Le proprietà From, By e To di un ColorAnimation non sono strettamente un Colore. Questi sono invece nullable per Color. Il valore predefinito per questi valori è Null, non una struttura non inizializzata. Il valore Null è il modo in cui il sistema di animazione distingue che non è stato impostato in modo specifico un valore. Non esiste il tipo Nullable delle estensioni del componente Visual C++ (C++/CX) e al suo posto si usa il tipo IReference.
Costruttori
ColorAnimation() |
Inizializza una nuova istanza della classe ColorAnimation . |
Proprietà
AutoReverse |
Ottiene o imposta un valore che indica se la sequenza temporale viene riprodotta in senso inverso dopo il completamento di un'iterazione in avanti. (Ereditato da Timeline) |
BeginTime |
Ottiene o imposta l'ora in cui deve iniziare questa sequenza temporale . (Ereditato da Timeline) |
By |
Ottiene o imposta la quantità totale in base alla quale l'animazione modifica il valore iniziale. |
ByProperty |
Identifica la proprietà By dependency. |
Dispatcher |
Restituisce |
DispatcherQueue |
Ottiene l'oggetto |
Duration |
Ottiene o imposta la durata di riproduzione di questa sequenza temporale, senza contare le ripetizioni. (Ereditato da Timeline) |
EasingFunction |
Ottiene o imposta la funzione di interpolazione applicata all'animazione. |
EasingFunctionProperty |
Identifica la proprietà di dipendenza EasingFunction . |
EnableDependentAnimation |
Ottiene o imposta un valore che dichiara se le proprietà animate considerate animazioni dipendenti devono essere consentite per l'uso di questa dichiarazione di animazione. |
EnableDependentAnimationProperty |
Identifica la proprietà Di dipendenza EnableDependentAnimation . |
FillBehavior |
Ottiene o imposta un valore che specifica il comportamento dell'animazione dopo che raggiunge la fine del periodo attivo. (Ereditato da Timeline) |
From |
Ottiene o imposta il valore iniziale dell'animazione. |
FromProperty |
Identifica la proprietà From dependency. |
RepeatBehavior |
Ottiene o imposta il comportamento di ripetizione della sequenza temporale. (Ereditato da Timeline) |
SpeedRatio |
Ottiene o imposta la frequenza, rispetto al relativo elemento padre, in cui viene eseguito lo stato di avanzamento per questa sequenza temporale. (Ereditato da Timeline) |
To |
Ottiene o imposta il valore finale dell'animazione. |
ToProperty |
Identifica la proprietà To dependency. |
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 un oggetto DependencyObject. (Ereditato da DependencyObject) |
ReadLocalValue(DependencyProperty) |
Restituisce il valore locale di una proprietà di dipendenza, se viene impostato un valore locale. (Ereditato da DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra una funzione di notifica per l'ascolto delle modifiche a un'istanza di DependencyObject specifica. (Ereditato da DependencyObject) |
SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza in un oggetto DependencyObject. (Ereditato da DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback. (Ereditato da DependencyObject) |
Eventi
Completed |
Si verifica al termine della riproduzione dell'oggetto Storyboard . (Ereditato da Timeline) |
Si applica a
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per