ColorAnimation Klasse

Definition

Animates the value of a Color property between two target values using linear interpolation over a specified Duration.

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 .../>
Vererbung
Object Platform::Object IInspectable DependencyObject Timeline ColorAnimation
Attribute

Beispiele

Das folgende Beispiel zeigt, wie Sie ColorAnimation verwenden, um die Hintergrundfarbe eines StackPanel zu animieren.

<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)"

Alternativ können Sie den SolidColorBrush explizit erstellen, ihn benennen und seine Color-Eigenschaft direkt als Ziel festlegen. Das folgende Beispiel zeigt, wie Sie dieselbe Animation wie das vorherige erstellen, mit Ausnahme der direkten Eigenschaftenadressierung.

<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();
}

Hinweise

Verwenden Sie ColorAnimation, um den Eigenschaftswert jeder Abhängigkeitseigenschaft zu animieren, die vom Typ Color ist.

Lineare Interpolation für eine Farbe bedeutet, dass jeder der ARGB-Werte als Byte behandelt wird und die Interpolation einfach eine mathematische Operation ist. Sie erhalten optimale Ergebnisse aus der Farbinterpolation, wenn mindestens eine der RGB-Komponenten im Anfangs- und Endwert identisch oder nahe am gleichen ist.

Normalerweise müssen Sie die indirekte Eigenschaftsadressierung verwenden, um eine Untereigenschaft eines anderen Objekts als Ziel zu verwenden, das den Wert einer Eigenschaft für das Ziel darstellt. Dies liegt daran, dass sehr wenige Eigenschaften, die Farbinformationen in UI-Elementen anzeigen, tatsächlich vom Typ "Color" sind. Die meisten sind anstelle des Pinseltyps. Um ColorAnimation für UI-Elemente zu verwenden, richten Sie sich in der Regel auf die Color-Eigenschaft eines SolidColorBrush , der den Untereigenschaftswert darstellt. Die Syntax hierfür wird im XAML-Beispiel im Abschnitt "Beispiele" gezeigt. Weitere Informationen zu indirekten Eigenschaftenadressierung und anderen Storyboardanimationen finden Sie unter Storyboardanimationen oder Property-Path-Syntax.

Eine ColorAnimation verfügt in der Regel über mindestens einen der Eigenschaften From, By oder To , aber nie alle drei.

  • Nur von: Die Animation wird von dem von der From-Eigenschaft angegebenen Wert zum Basiswert der animierten Eigenschaft ausgeführt.
  • Von und nach: Die Animation wird vom wert, der von der From-Eigenschaft angegeben wird, zum wert, der von der To-Eigenschaft angegeben wird.
  • Von und nach: Die Animation wird von dem von der From-Eigenschaft angegebenen Wert zum durch die Summe der From - und By-Eigenschaften angegebenen Wert ausgeführt.
  • Nur für: Die Animation wird vom Basiswert der animierten Eigenschaft oder dem Ausgabewert einer vorherigen Animation zum durch die To-Eigenschaft angegebenen Wert ausgeführt.
  • Nur nach: Die Animation wird vom Basiswert der animierten Eigenschaft oder dem Ausgabewert einer vorherigen Animation zur Summe dieses Werts und des durch die By-Eigenschaft angegebenen Werts ausgeführt.

Die Eigenschaften From, By und To einer ColorAnimation sind keine ausschließliche Farbe. Stattdessen ist dies eine Nullwerte für Farbe. Der Standardwert für diese Werte ist NULL, keine nicht initialisierte Struktur. Dieser Nullwert ist, wie das Animationssystem unterscheidet, dass Sie keinen speziellen Wert festgelegt haben. C++ verfügt nicht über einen nullfähigen Typ, daher wird stattdessen IReference verwendet.

Konstruktoren

Name Beschreibung
ColorAnimation()

Initialisiert eine neue Instanz der ColorAnimation-Klasse .

Eigenschaften

Name Beschreibung
AutoReverse

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Zeitachse rückwärts wiedergegeben wird, nachdem sie eine Vorwärts iteration abgeschlossen hat.

(Geerbt von Timeline)
BeginTime

Ruft die Uhrzeit ab, zu der diese Zeitachse beginnen soll, oder legt sie fest.

(Geerbt von Timeline)
By

Ruft den Gesamtbetrag ab, um den die Animation ihren Anfangswert ändert, oder legt diese fest.

ByProperty

Identifies the By dependency property.

Dispatcher

Gibt immer in einer Windows App SDK-App zurück null . Verwenden Sie stattdessen DispatcherQueue .

(Geerbt von DependencyObject)
DispatcherQueue

Ruft ab DispatcherQueue , dem dieses Objekt zugeordnet ist. Dies DispatcherQueue stellt eine Einrichtung dar, die auf den DependencyObject UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird.

(Geerbt von DependencyObject)
Duration

Dient zum Abrufen oder Festlegen der Zeitdauer, für die diese Zeitachse wiedergegeben wird, ohne Wiederholungen zu zählen.

(Geerbt von Timeline)
EasingFunction

Ruft die Beschleunigungsfunktion ab, die auf diese Animation angewendet wird, oder legt sie fest.

EasingFunctionProperty

Identifies the EasingFunction dependency property.

EnableDependentAnimation

Dient zum Abrufen oder Festlegen eines Werts, der deklariert, ob animierte Eigenschaften, die als abhängige Animationen betrachtet werden, diese Animationsdeklaration verwenden dürfen.

EnableDependentAnimationProperty

Identifies the EnableDependentAnimation dependency property.

FillBehavior

Dient zum Abrufen oder Festlegen eines Werts, der angibt, wie sich die Animation verhält, nachdem sie das Ende des aktiven Zeitraums erreicht hat.

(Geerbt von Timeline)
From

Dient zum Abrufen oder Festlegen des Startwerts der Animation.

FromProperty

Identifies the From dependency property.

RepeatBehavior

Ruft das wiederholte Verhalten dieser Zeitachse ab oder legt dieses fest.

(Geerbt von Timeline)
SpeedRatio

Dient zum Abrufen oder Festlegen der Rate relativ zum übergeordneten Element, zu dem der Zeitpunkt für diese Zeitachse voranschreitet.

(Geerbt von Timeline)
To

Dient zum Abrufen oder Festlegen des Endwerts der Animation.

ToProperty

Identifies the To dependency property.

Methoden

Name Beschreibung
ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Abhängigkeitseigenschaft.

(Geerbt von DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Gibt einen Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, was in Fällen angewendet wird, in denen eine Animation nicht aktiv ist.

(Geerbt von DependencyObject)
GetValue(DependencyProperty)

Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück.

(Geerbt von DependencyObject)
ReadLocalValue(DependencyProperty)

Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt wird.

(Geerbt von DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registriert eine Benachrichtigungsfunktion, um Änderungen an einer bestimmten DependencyProperty für diese DependencyObject-Instanz zu überwachen.

(Geerbt von DependencyObject)
SetValue(DependencyProperty, Object)

Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest.

(Geerbt von DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Bricht eine Änderungsbenachrichtigung ab, die zuvor durch Aufrufen von RegisterPropertyChangedCallback registriert wurde.

(Geerbt von DependencyObject)

Ereignisse

Name Beschreibung
Completed

Tritt auf, wenn die Wiedergabe des Storyboard-Objekts abgeschlossen wurde.

(Geerbt von Timeline)

Gilt für:

Weitere Informationen