Freigeben über


DoubleAnimation Klasse

Definition

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

public ref class DoubleAnimation 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 DoubleAnimation 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 DoubleAnimation : Timeline
Public NotInheritable Class DoubleAnimation
Inherits Timeline
<DoubleAnimation />
Vererbung
Object Platform::Object IInspectable DependencyObject Timeline DoubleAnimation
Attribute

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie mithilfe von DoubleAnimation ein Rechteck erstellen, das nach dem Laden ein- und ausgeblendet wird.

<StackPanel>
    <StackPanel.Resources>
        <Storyboard x:Name="myStoryboard">
            <DoubleAnimation
          Storyboard.TargetName="MyAnimatedRectangle"
          Storyboard.TargetProperty="Opacity"
          From="1.0" To="0.0" Duration="0:0:3"
          AutoReverse="True" RepeatBehavior="Forever" />
        </Storyboard>
    </StackPanel.Resources>

    <Rectangle Loaded="Start_Animation" x:Name="MyAnimatedRectangle"
     Width="100" Height="100" Fill="Blue" />

</StackPanel>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}
<Canvas>
    <Canvas.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>
    </Canvas.Resources>

    <Rectangle PointerPressed="Pointer_Clicked" Fill="Blue"
 Width="50" Height="50">
        <Rectangle.RenderTransform>
            <TranslateTransform x:Name="MyAnimatedTranslateTransform" />
        </Rectangle.RenderTransform>
    </Rectangle>

</Canvas>
// Start the animation when the object loads
private void Start_Animation(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}

Hinweise

Verwenden Sie DoubleAnimation, um den Eigenschaftswert jeder Abhängigkeitseigenschaft vom Typ Double zu animieren.

Manchmal müssen Sie indirekte Eigenschaftenadressierung verwenden, um eine Untereigenschaft eines anderen Objekts als Ziel zu verwenden, bei dem es sich um den Wert einer Eigenschaft auf dem Ziel handelt. Um z. B. die X-Komponente einer RenderTransform eines UIElements animieren zu können, müssen Sie auf einige der zwischengeschalteten Objekt-Eigenschaftswerte verweisen, bis der letzte Schritt im indirekten Eigenschaftenpfad wirklich ein Double-Wert ist, wie dies bei TranslateTransform.X der Fall ist. Die richtige Zeichenfolge, die für Storyboard.TargetProperty in diesem Beispiel verwendet werden soll, ist "(UIElement.RenderTransform). (TranslateTransform.X)". Weitere Informationen zu indirekten Eigenschaftenzielen und anderen Konzepten für Storyboardanimationen finden Sie unter Storyboardanimationen.

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

  • Nur von: Die Animation wird von dem durch die From-Eigenschaft angegebenen Wert zum Basiswert der animierten Eigenschaft fortgesetzt.
  • Von und nach: Die Animation wird von dem wert fortgesetzt, der von der From-Eigenschaft angegeben wird, und dem Wert, der von der To-Eigenschaft angegeben wird.
  • Von und nach: Die Animation wird von dem von der From-Eigenschaft angegebenen Wert zu dem Wert fortgesetzt, der durch die Summe der Eigenschaften From und By angegeben wird.
  • Nur für: Die Animation wird vom Basiswert der animierten Eigenschaft oder dem Ausgabewert einer vorherigen Animation zu dem von der To-Eigenschaft angegebenen Wert fortgesetzt.
  • Nur durch: 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 fortgesetzt.

Sie können die X - und Y-Werte eines Punkts nicht mithilfe einer DoubleAnimation animieren, da diese Eigenschaften keine Abhängigkeitseigenschaften sind (Punkt ist eine Struktur und kann keine Abhängigkeitseigenschaften aufweisen.) Verwenden Sie stattdessen PointAnimation , um Abhängigkeitseigenschaften mit einem Point-Wert zu animieren.

Sie können doubleAnimation auch nicht verwenden, um int-Werte oder Bytewerte zu animieren. Stattdessen müssen Sie ObjectAnimationUsingKeyFrames verwenden. Dadurch erhalten Sie kein Interpolationsverhalten, sodass Sie möglicherweise mehrere Keyframes definieren müssen, um eine einigermaßen reibungslose Animation zu erhalten. Es gibt nicht viele Ui-bezogene Abhängigkeitseigenschaften, die int-Werte oder Bytewerte verwenden, daher sollte dies kein häufiges Szenario sein, außer für benutzerdefinierte Eigenschaften.

Die Eigenschaften From, By oder To einer DoubleAnimation sind nicht unbedingt double. Stattdessen sind dies nullable für Double. Der Standardwert für diese ist NULL, nicht 0. Dieser NULL-Wert ist, wie das Animationssystem unterscheidet, dass Sie keinen speziellen Wert festgelegt haben. Visual C++-Komponentenerweiterungen (C++/CX) verfügen nicht über einen Nullable-Typ und nutzen stattdessen IReference.

Konstruktoren

DoubleAnimation()

Initialisiert eine neue instance der DoubleAnimation-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

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

(Geerbt von DependencyObject)
DispatcherQueue

Ruft den DispatcherQueue ab, dem dieses Objekt zugeordnet ist. Stellt DispatcherQueue eine Funktion dar, die auf den 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 angibt, ob animierte Eigenschaften, die als abhängige Animationen gelten, diese Animationsdeklaration verwenden dürfen, oder legt diesen fest.

EnableDependentAnimationProperty

Identifiziert die EnableDependentAnimation-Abhängigkeitseigenschaft .

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

Identifiziert die From-Abhängigkeitseigenschaft.

RepeatBehavior

Ruft das Wiederholungsverhalten dieser Zeitachse ab oder legt es fest.

(Geerbt von Timeline)
SpeedRatio

Ruft die Rate relativ zum übergeordneten Element ab, zu dem für diese Zeitachse ein Fortschritt erfolgt, oder legt diese fest.

(Geerbt von Timeline)
To

Ruft den Endwert der Animation ab oder legt ihn fest.

ToProperty

Identifiziert die To-Abhängigkeitseigenschaft.

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 eingerichtet wurde, der 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 durch Aufrufen von RegisterPropertyChangedCallback registriert wurde.

(Geerbt von DependencyObject)

Ereignisse

Completed

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

(Geerbt von Timeline)

Gilt für:

Weitere Informationen