ColorAnimation Klasse

Definition

Animiert den Wert einer Color-Eigenschaft zwischen zwei Zielwerten mithilfe einer linearen Interpolation über eine angegebene Dauer.

public ref class ColorAnimation sealed : Timeline
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 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.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class ColorAnimation final : Timeline
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ColorAnimation : Timeline
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class ColorAnimation : Timeline
Public NotInheritable Class ColorAnimation
Inherits Timeline
<ColorAnimation .../>
Vererbung
Object Platform::Object IInspectable DependencyObject Timeline ColorAnimation
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

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();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    colorStoryboard.Begin()
End Sub
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"

Alternativ können Sie den SolidColorBrush explizit erstellen, ihn benennen und die Color-Eigenschaft direkt als Ziel verwenden. Das folgende Beispiel zeigt, wie Sie dieselbe Animation wie die vorherige Animation erstellen, mit der Ausnahme, dass sie direkte Eigenschaftenziele verwendet.

<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();
}
' Start the animation when the object loads
Private Sub Start_Animation(ByVal sender As Object, ByVal e As EventArgs)
    colorStoryboard.Begin()
End Sub

Hinweise

Verwenden Sie ColorAnimation, um den Eigenschaftswert einer beliebigen Abhängigkeitseigenschaft vom Typ Color zu animieren.

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 erzielen die besten Ergebnisse aus der Farbinterpolation, wenn mindestens eine der RGB-Komponenten im Start- und Endwert identisch oder nahezu identisch ist.

Normalerweise müssen Sie indirekte Eigenschaftenziele verwenden, um eine Untereigenschaft eines anderen Objekts als Ziel zu verwenden, das den Wert einer Eigenschaft auf dem Ziel darstellt. Dies liegt daran, dass nur sehr wenige Eigenschaften, die Farbinformationen in UI-Elementen anzeigen, tatsächlich vom Typ Color sind. Die meisten sind anstelle des Typs Brush. Um ColorAnimation für Benutzeroberflächenelemente zu verwenden, zielen Sie in der Regel auf die Color-Eigenschaft eines SolidColorBrush-Objekts ab, bei dem es sich um den Untereigenschaftswert handelt. Die Syntax hierfür wird im XAML-Beispiel im Abschnitt "Beispiele" angezeigt. Weitere Informationen zu indirekten Eigenschaftenzielen und anderen Konzepten für Storyboardanimationen finden Sie unter Storyboardanimationen oder Eigenschaftenpfadsyntax.

Für eine ColorAnimation ist in der Regel mindestens eine der Eigenschaften From, By oder To festgelegt, aber nie alle drei.

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

Die Eigenschaften From, By und To einer ColorAnimation sind nicht unbedingt Eine Farbe. Stattdessen sind dies nullable für Color. Der Standardwert für diese ist NULL, keine nicht initialisierte Struktur. Dieser NULL-Wert ist, wie das Animationssystem unterscheidet, dass Sie keinen Wert speziell festgelegt haben. Visual C++-Komponentenerweiterungen (C++/CX) verfügen nicht über einen Nullable-Typ und nutzen stattdessen IReference.

Konstruktoren

ColorAnimation()

Initialisiert eine neue instance der ColorAnimation-Klasse.

Eigenschaften

AutoReverse

Ruft einen Wert ab, der angibt, ob die Zeitachse nach einem vollständigen Durchgang vorwärts in umgekehrter Reihenfolge abspielt.

(Geerbt von Timeline)
BeginTime

Ruft den Zeitpunkt ab, zu dem diese Zeitachse beginnen soll, oder legt diese fest.

(Geerbt von Timeline)
By

Ruft den Gesamtbetrag ab, um den die Animation ihren Startwert ändert, oder legt diesen fest.

ByProperty

Identifiziert die By-Abhängigkeitseigenschaft.

Dispatcher

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

(Geerbt von DependencyObject)
Duration

Ruft die Zeitdauer ab, für die diese Zeitachse wiedergegeben wird, ohne Wiederholungen, oder legt diese fest.

(Geerbt von Timeline)
EasingFunction

Ruft die auf diese Animation angewendete Beschleunigungsfunktion ab oder legt sie fest.

EasingFunctionProperty

Gibt die EasingFunction-Abhängigkeitseigenschaft an.

EnableDependentAnimation

Ruft einen Wert ab, der deklariert, ob animierte Eigenschaften, die als abhängige Animationen gelten, diese Animationsdeklaration verwenden dürfen, oder legt diesen wert fest.

EnableDependentAnimationProperty

Gibt die Abhängigkeitseigenschaft EnableDependentAnimation an.

FillBehavior

Ruft einen Wert ab, der angibt, wie sich die Animation verhält, nachdem sie das Ende ihres aktiven Zeitraums erreicht hat, oder legt diesen fest.

(Geerbt von Timeline)
From

Ruft den Anfangswert der Animation ab oder legt ihn fest.

FromProperty

Gibt die From-Abhängigkeitseigenschaft an.

RepeatBehavior

Ruft das Wiederholungsverhalten dieser Zeitachse ab oder legt es fest.

(Geerbt von Timeline)
SpeedRatio

Ruft die Rate im Verhältnis zu ihrem übergeordneten Element ab, zu dem die Zeit für diese Zeitachse voranschreitet, oder legt diese fest.

(Geerbt von Timeline)
To

Ruft den Endwert der Animation ab oder legt ihn fest.

ToProperty

Gibt die To-Abhängigkeitseigenschaft an.

Methoden

ClearValue(DependencyProperty)

Löscht den lokalen Wert einer Abhängigkeitseigenschaft.

(Geerbt von DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft festgelegt wurde, was in Fällen gilt, 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 ist.

(Geerbt von DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance.

(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 registriert wurde, indem RegisterPropertyChangedCallback aufgerufen wurde.

(Geerbt von DependencyObject)

Ereignisse

Completed

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

(Geerbt von Timeline)

Gilt für:

Weitere Informationen