Teilen über


Storyboard Klasse

Definition

Steuert Animationen mit einem Zeitleiste und stellt Objekt- und Eigenschaftenzielinformationen für die untergeordneten Animationen bereit.

public ref class Storyboard 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)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="Children")]
class Storyboard 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.UI.Xaml.Markup.ContentProperty(Name="Children")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class Storyboard 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)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="Children")]
public sealed class Storyboard : 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.UI.Xaml.Markup.ContentProperty(Name="Children")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class Storyboard : Timeline
Public NotInheritable Class Storyboard
Inherits Timeline
<Storyboard ...>
  oneOrMoreChildTimelines
</Storyboard>
Vererbung
Object Platform::Object IInspectable DependencyObject Timeline Storyboard
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 die Methoden Begin, Stop, Pause und Resume verwenden, um die Wiedergabe eines Storyboards (Animation) zu steuern. Eine Reihe von Schaltflächen ermöglicht es dem Benutzer, diese Methoden aufzurufen.

<StackPanel x:Name="LayoutRoot" >
    <StackPanel.Resources>
        <Storyboard x:Name="myStoryboard">
            <DoubleAnimation From="1" To="6" Duration="00:00:6" 
            Storyboard.TargetName="rectScaleTransform" 
            Storyboard.TargetProperty="ScaleY">
                <DoubleAnimation.EasingFunction>
                    <BounceEase Bounces="2" EasingMode="EaseOut" 
                            Bounciness="2" />
                </DoubleAnimation.EasingFunction>
            </DoubleAnimation>
        </Storyboard>
    </StackPanel.Resources>

    <!-- Button that begins animation. -->
    <Button Click="Animation_Begin"
         Margin="2" Content="Begin" />

    <!-- Button that pauses Animation. -->
    <Button Click="Animation_Pause"
         Margin="2" Content="Pause" />

    <!-- Button that resumes Animation. -->
    <Button Click="Animation_Resume"
         Margin="2" Content="Resume" />

    <!-- Button that stops Animation. Stopping the animation 
         returns the ellipse to its original location. -->
    <Button Click="Animation_Stop"
         Margin="2" Content="Stop" />

    <Rectangle Fill="Blue" Width="200" Height="30">
        <Rectangle.RenderTransform>
            <ScaleTransform x:Name="rectScaleTransform" />
        </Rectangle.RenderTransform>
    </Rectangle>

</StackPanel>
private void Animation_Begin(object sender, RoutedEventArgs e)
{
    myStoryboard.Begin();
}
private void Animation_Pause(object sender, RoutedEventArgs e)
{
    myStoryboard.Pause();
}
private void Animation_Resume(object sender, RoutedEventArgs e)
{
    myStoryboard.Resume();
}
private void Animation_Stop(object sender, RoutedEventArgs e)
{
    myStoryboard.Stop();
}
Private Sub Animation_Begin(sender As Object, e As RoutedEventArgs)
    myStoryboard.Begin()
End Sub

Private Sub Animation_Pause(sender As Object, e As RoutedEventArgs)
    myStoryboard.Pause()
End Sub

Private Sub Animation_Resume(sender As Object, e As RoutedEventArgs)
    myStoryboard.Resume()
End Sub

Private Sub Animation_Stop(sender As Object, e As RoutedEventArgs)
    myStoryboard.Stop()
End Sub
//using Windows.UI.Xaml.Media.Animation;
//using Windows.UI.Xaml.Shapes;
//using Windows.UI

private void Create_And_Run_Animation(object sender, RoutedEventArgs e)
{
    // Create a red rectangle that will be the target
    // of the animation.
    Rectangle myRectangle = new Rectangle();
    myRectangle.Width = 200;
    myRectangle.Height = 200;
    SolidColorBrush myBrush = new SolidColorBrush(Colors.Red);
    myRectangle.Fill = myBrush;

    // Create the transform
    TranslateTransform moveTransform = new TranslateTransform();
    moveTransform.X = 0;
    moveTransform.Y = 0;
    myRectangle.RenderTransform = moveTransform;

    // Add the rectangle to the tree.
    LayoutRoot.Children.Add(myRectangle);

    // Create a duration of 2 seconds.
    Duration duration = new Duration(TimeSpan.FromSeconds(2));
    // Create two DoubleAnimations and set their properties.
    DoubleAnimation myDoubleAnimationX = new DoubleAnimation();
    DoubleAnimation myDoubleAnimationY = new DoubleAnimation();
    myDoubleAnimationX.Duration = duration;
    myDoubleAnimationY.Duration = duration;
    Storyboard justintimeStoryboard = new Storyboard();
    justintimeStoryboard.Duration = duration;
    justintimeStoryboard.Children.Add(myDoubleAnimationX);
    justintimeStoryboard.Children.Add(myDoubleAnimationY);
    Storyboard.SetTarget(myDoubleAnimationX, moveTransform);
    Storyboard.SetTarget(myDoubleAnimationY, moveTransform);

    // Set the X and Y properties of the Transform to be the target properties
    // of the two respective DoubleAnimations.
    Storyboard.SetTargetProperty(myDoubleAnimationX, "X");
    Storyboard.SetTargetProperty(myDoubleAnimationY, "Y");
    myDoubleAnimationX.To = 200;
    myDoubleAnimationY.To = 200;

    // Make the Storyboard a resource.
    LayoutRoot.Resources.Add("justintimeStoryboard", justintimeStoryboard);
    // Begin the animation.
    justintimeStoryboard.Begin();
}
' need Imports for Windows.UI.Xaml.Shapes, Windows.UI.Media.Animation, Windows.UI
Private Sub Create_And_Run_Animation(sender As Object, e As RoutedEventArgs)
    ' Create a red rectangle that will be the target
    ' of the animation.
    Dim myRectangle As Rectangle = New Rectangle
    myRectangle.Width = 200
    myRectangle.Height = 200
    Dim myBrush As SolidColorBrush = New SolidColorBrush(Colors.Red)
    myRectangle.Fill = myBrush

   ' Create the transform
    Dim moveTransform As TranslateTransform = New TranslateTransform
    moveTransform.X = 0
    moveTransform.Y = 0
    myRectangle.RenderTransform = moveTransform

    ' Add the rectangle to the tree.
    LayoutRoot.Children.Add(myRectangle)

    ' Create a duration of 2 seconds.
    Dim duration As Duration = New Duration(TimeSpan.FromSeconds(2))
    ' Create two DoubleAnimations and set their properties.
    Dim myDoubleAnimationX As DoubleAnimation = New DoubleAnimation
    Dim myDoubleAnimationY As DoubleAnimation = New DoubleAnimation
    myDoubleAnimationX.Duration = duration
    myDoubleAnimationY.Duration = duration
    Dim justintimeStoryboard As Storyboard = New Storyboard
    justintimeStoryboard.Duration = duration
    justintimeStoryboard.Children.Add(myDoubleAnimationX)
    justintimeStoryboard.Children.Add(myDoubleAnimationY)
    Storyboard.SetTarget(myDoubleAnimationX, moveTransform)
    Storyboard.SetTarget(myDoubleAnimationY, moveTransform)

    ' Set the X and Y properties of the Transform to be the target properties
    ' of the two respective DoubleAnimations.
    Storyboard.SetTargetProperty(myDoubleAnimationX, "X")
    Storyboard.SetTargetProperty(myDoubleAnimationY, "Y")
    myDoubleAnimationX.To = 200
    myDoubleAnimationY.To = 200

    ' Make the Storyboard a resource.
    LayoutRoot.Resources.Add("justintimeStoryboard", justintimeStoryboard)
    ' Begin the animation.
    justintimeStoryboard.Begin()
End Sub

Hinweise

Storyboard ist eine wichtige Klasse im Konzept von Storyboardanimationen. Weitere Informationen zum Konzept finden Sie unter Storyboardanimationen.

Storyboard wird für die folgenden Eigenschaften verwendet:

Diese Eigenschaften sind nicht der einzige Ort, an dem ein Storyboard definiert wird. Die typische Verwendung eines Storyboards für eine Storyboardanimation besteht darin, dass das Storyboard in einer Resources-Auflistung (entweder Application.Resources oder FrameworkElement.Resources oder möglicherweise als Ressource in einer Datei wie Generic.xaml für ein benutzerdefiniertes Steuerelement) definiert wird. Wenn sie als XAML-Ressource definiert ist, sollten Sie Ihrem Storyboard immer einen x:Name-Attributwert zuweisen. Sie können dann später im CodeBehind auf den Namen als Programmiervariable verweisen. Sie benötigen diesen Verweis, um tatsächlich die Animationen auszuführen, die das Storyboard enthält, indem Sie die Begin-Methode für dieses Storyboard-instance aufrufen. Storyboard verfügt auch über andere Steuerungsmethoden wie Stop , mit denen die Animation danach gesteuert werden kann.

Storyboard erbt mehrere Eigenschaften von Der Zeitachse. Diese Eigenschaften können entweder auf ein Storyboard oder auf eine der darin enthaltenen Animationen (in der Children-Auflistung ) angewendet werden. Es gibt Vor- und Nachteile beim Festlegen von Zeitachseneigenschaften auf der Standard Storyboards statt für jede Animation. Weitere Informationen finden Sie unter Storyboardanimationen.

Sie benötigen auch ein Storyboard, um die vordefinierten Animationen zu steuern, die Sie zu Steuerelementen oder der Benutzeroberfläche hinzufügen, wenn Sie eine der Designanimationen verwenden. Designanimationen verfügen nicht über einen angeborenen Triggerpunkt, sodass Sie Designanimationen als Kinder in einem Storyboard enthalten müssen. Wenn das Storyboard als VisualState.Storyboard-Wert verwendet wird, wird die Animation ausgeführt, wenn dieser visuelle Zustand geladen wird. Oder wenn sie sich in einem VisualTransition.Storyboard befindet, wird die Animation ausgeführt, wenn dieser Übergang vom visuellen Zustands-Manager erkannt wird. Dies ist die gebräuchlichste Möglichkeit, eine Designanimation zu verwenden, aber Sie können auch eine in eine lose Storyboardressource einfügen und die Animation explizit starten, indem Sie Begin aufrufen. Weitere Informationen zur Verwendung von Designanimationen finden Sie unter Schnellstart: Animieren der Benutzeroberfläche mithilfe von Bibliotheksanimationen oder Storyboardanimationen für visuelle Zustände.

Angefügte XAML-Eigenschaften

Storyboard ist die Hostdienstklasse für mehrere angefügte XAML-Eigenschaften. Diese ermöglichen untergeordnete Animationen, die vom Storyboard für jedes Ziel separate Zielelemente und Zieleigenschaften gesteuert werden, während weiterhin demselben Steuerungs Zeitleiste- und Triggermechanismus wie das übergeordnete Element folgen.

Um den XAML-Prozessorzugriff auf die angefügten Eigenschaften zu unterstützen und auch äquivalente Get - und Set-Vorgänge für Code verfügbar zu machen, verfügt jede angefügte XAML-Eigenschaft über ein Paar von Get- und Set-Accessormethoden. Eine weitere Möglichkeit zum Abrufen oder Festlegen des Werts im Code besteht darin, das Abhängigkeitseigenschaftensystem zu verwenden, entweder GetValue oder SetValue aufzurufen und das Bezeichnerfeld als Abhängigkeitseigenschaftsbezeichner zu übergeben.

Angefügte Eigenschaft Beschreibung
Targetname Ruft den Namen des zu animierenden Objekts ab oder legt ihn fest.
Targetproperty Ruft die Eigenschaft ab oder legt diese fest, die animiert werden soll.

Konstruktoren

Storyboard()

Initialisiert eine neue instance der Storyboard-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)
Children

Ruft die Auflistung der untergeordneten Timeline-Objekte ab.

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

Identifiziert die angefügte Storyboard.TargetName-XAML-Eigenschaft .

TargetPropertyProperty

Identifiziert die angefügte Storyboard.TargetProperty-XAML-Eigenschaft .

Angefügte Eigenschaften

TargetName

Ruft den Namen des zu animierenden Objekts ab oder legt ihn fest.

TargetProperty

Ruft die Eigenschaft ab oder legt diese fest, die animiert werden soll.

Methoden

Begin()

Initiiert den Satz von Animationen, die dem Storyboard zugeordnet sind.

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)
GetCurrentState()

Ruft den Uhrzustand des Storyboards ab.

GetCurrentTime()

Ruft die aktuelle Animationsuhrzeit des Storyboards ab.

GetTargetName(Timeline)

Ruft den Wert der angefügten Xaml-Eigenschaft Storyboard.TargetName aus einem Zielelement ab.

GetTargetProperty(Timeline)

Ruft den Wert der angefügten XAML-Eigenschaft Storyboard.TargetProperty aus einem Zielelement ab.

GetValue(DependencyProperty)

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

(Geerbt von DependencyObject)
Pause()

Hält die dem Storyboard zugeordnete Animationsuhr an.

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)
Resume()

Setzt die Dem Storyboard zugeordnete Animationsuhr oder den Laufzeitzustand fort.

Seek(TimeSpan)

Verschiebt das Storyboard an die angegebene Animationsposition. Das Storyboard führt die angeforderte Suche aus, wenn der nächste Takt auftritt.

SeekAlignedToLastTick(TimeSpan)

Verschiebt das Storyboard sofort (synchron) an die angegebene Animationsposition.

SetTarget(Timeline, DependencyObject)

Bewirkt, dass die angegebene Zeitachse auf das angegebene Objekt ausgerichtet ist.

SetTargetName(Timeline, String)

Legt den Wert der angefügten Xaml-Eigenschaft Storyboard.TargetName für ein Zielelement fest.

SetTargetProperty(Timeline, String)

Legt den Wert der angefügten XAML-Eigenschaft Storyboard.TargetProperty für ein Zielelement fest.

SetValue(DependencyProperty, Object)

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

(Geerbt von DependencyObject)
SkipToFill()

Erhöht die aktuelle Zeit der Uhr des Storyboards bis zum Ende seiner aktiven Periode.

Stop()

Beendet das Storyboard.

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