Windows Dev Center

Storyboard Class

Steuert Animationen mit einer Zeitachse und stellt die Objekt- und Eigenschaftenzielinformationen für die untergeordneten Animationen bereit.

Vererbung

Object
  DependencyObject
    Timeline
      Storyboard

Syntax


public sealed class Storyboard : Timeline


<Storyboard ...>
  oneOrMoreChildTimelines
</Storyboard>

XAML Values

oneOrMoreChildTimelines

Ein oder mehrere Objektelemente für Klassen, die von Timeline abgeleitet werden. Dies kann entweder ein anderes Storyboard oder eine beliebige Anzahl von Animationstypen sein.

Attribute

[ContentProperty("Name=Children")]
[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]
[WebHostHidden()]

Member

StoryboardKlasse hat diese Membertypen:

Konstruktoren

StoryboardKlasse hat diese Konstruktoren.

KonstruktorBeschreibung
Storyboard Initializes a new instance of the Storyboard class.

 

Ereignisse

StoryboardKlasse hat diese Ereignisse.

EreignisBeschreibung
Completed Occurs when the Storyboard object has completed playing. (Geerbt von Timeline)

 

Methoden

The Storyboard Klasse hat diese Methoden. Es erbt auch Methoden von Object Klasse.

MethodeBeschreibung
Begin Initiates the set of animations associated with the storyboard.
ClearValue Clears the local value of a dependency property. (Geerbt von DependencyObject)
GetAnimationBaseValue Returns any base value established for a dependency property, which would apply in cases where an animation is not active. (Geerbt von DependencyObject)
GetCurrentState Gets the clock state of the Storyboard.
GetCurrentTime Gets the current animation clock time of the Storyboard.
GetTargetName Gets the value of the Storyboard.TargetName XAML attached property from a target element.
GetTargetProperty Gets the value of the Storyboard.TargetProperty XAML attached property from a target element.
GetValue Returns the current effective value of a dependency property from a DependencyObject. (Geerbt von DependencyObject)
Pause Pauses the animation clock associated with the storyboard.
ReadLocalValue Returns the local value of a dependency property, if a local value is set. (Geerbt von DependencyObject)
Resume Resumes the animation clock, or run-time state, associated with the storyboard.
Seek Moves the storyboard to the specified animation position. The storyboard performs the requested seek when the next clock tick occurs.
SeekAlignedToLastTick Moves the storyboard to the specified animation position immediately (synchronously).
SetTarget Causes the specified Timeline to target the specified object.
SetTargetName Sets the value of the Storyboard.TargetName XAML attached property for a target element.
SetTargetProperty Sets the value of the Storyboard.TargetProperty XAML attached property for a target element.
SetValue Sets the local value of a dependency property on a DependencyObject. (Geerbt von DependencyObject)
SkipToFill Advances the current time of the storyboard's clock to the end of its active period.
Stop Stops the storyboard.

 

Angefügte Eigenschaften

Der StoryboardKlasse has these attached properties.

ZugriffstypBeschreibung

Storyboard.TargetName

Lese-/SchreibzugriffGets or sets the name of the object to animate.

Storyboard.TargetProperty

Lese-/SchreibzugriffGets or sets the property that should be animated.

 

Eigenschaften

Der StoryboardKlasse hat diese Eigenschaften.

EigenschaftZugriffstypBeschreibung

AutoReverse

Lese-/SchreibzugriffGets or sets a value that indicates whether the timeline plays in reverse after it completes a forward iteration. (Geerbt von Timeline)

BeginTime

Lese-/SchreibzugriffGets or sets the time at which this Timeline should begin. (Geerbt von Timeline)

Children

SchreibgeschütztGets the collection of child Timeline objects.

Dispatcher

SchreibgeschütztGets the CoreDispatcher that this object is associated with. (Geerbt von DependencyObject)

Duration

Lese-/SchreibzugriffGets or sets the length of time for which this timeline plays, not counting repetitions. (Geerbt von Timeline)

FillBehavior

Lese-/SchreibzugriffGets or sets a value that specifies how the animation behaves after it reaches the end of its active period. (Geerbt von Timeline)

RepeatBehavior

Lese-/SchreibzugriffGets or sets the repeating behavior of this timeline. (Geerbt von Timeline)

SpeedRatio

Lese-/SchreibzugriffGets or sets the rate, relative to its parent, at which time progresses for this Timeline. (Geerbt von Timeline)

TargetNameProperty

SchreibgeschütztIdentifies the Storyboard.TargetName XAML attached property.

TargetPropertyProperty

SchreibgeschütztIdentifies the Storyboard.TargetProperty XAML attached property.

 

Hinweise

Storyboard ist eine wichtige Klasse im Konzept der Storyboard-Animationen. Weitere Informationen zu dem Konzept finden Sie unter Storyboard-Animationen.

Storyboard wird für diese Eigenschaften verwendet:

Diese Eigenschaften sind nicht der einzige Ort, an dem ein Storyboard definiert wird. Die typische Art und Weise, in der ein Storyboard für eine Storyboard-Animation verwendet wird, ist, dass das Storyboard in einer Resources-Auflistung definiert ist (entweder Application.Resources oder FrameworkElement.Resources oder möglicherweise als Ressource in einer Datei, wie StandardStyles.xaml). Wenn es auf diese Weise verwendet wird, sollten Sie immer einen x:Name attribute-Wert für Ihr Storyboard zuweisen. Sie können im CodeBehind später auf den Namen als Programmiervariable verweisen. Sie benötigen diesen Verweis, um die Animationen aus dem Storyboard tatsächlich auszuführen, indem Sie die Begin-Methode für diese Storyboard-Instanz aufrufen. Storyboard verfügt außerdem über andere Steuerelementmethoden.

Storyboard erbt einige Eigenschaften von Timeline. Diese Eigenschaften können entweder auf ein Storyboard oder auf eine der Animationen darin angewendet werden (in der Children-Auflistung). Es gibt Vor- und Nachteile bezüglich des Festlegens von Timeline-Eigenschaften auf dem Haupt-Storyboard anstatt auf jeder Animation. Weitere Informationen finden Sie unter Storyboarded-Animationen.

Sie benötigen auch ein Storyboard, um die Persönlichkeitsanimationen zu steuern, die Sie den Steuerelementen oder der Benutzeroberfläche hinzufügen, wenn Sie eine der Designanimationen verwenden. Designanimationen haben keinen natürlichen Auslösepunkt, Sie müssen Designanimationen also beispielsweise in einem Storyboard als Children gruppieren und Begin in der Logik der App aufrufen, wenn Sie Auslösereignisse für jeden Typ der Designanimation behandeln. Weitere Informationen finden Sie unter Schnellstart: Animieren der Benutzeroberfläche.

Angefügte Storyboard XAML-Eigenschaften

Storyboard ist die Hostdienstklasse für mehrere angefügte Eigenschaften in XAML. Diese aktivieren die von Storyboard gesteuerten untergeordneten Animationen auf allen zielgetrennten Zielelementen und Zieleigenschaften, obwohl sie der gleichen Steuerungszeitachse und dem gleichen Auslösemechanismus wie das übergeordnete Element folgen.

Die angefügten XAML-Eigenschaften, die von Storyboard unterstützt werden:

Storyboard.TargetName wird verwendet, um ein anderes Element anhand seines Namens zu referenzieren. Das Element, auf das verwiesen wird, ist das Element bzw. das Objekt, auf das die Animation angewendet werden soll. Dieser Mechanismus ist Teil des grundlegenden Entwurfs des Animationssystems: er aktiviert die Animationsressourcen, die von den Benutzeroberflächen-Deklarationsressourcen separat zu deklarieren sind, und ermöglicht eine Zweckumwandlung der Animation. Für den Wert von Storyboard.TargetName auf einer bestimmten Animation geben Sie die Name- oder x:Name-Attributwerte des Zielelements an, das eine Zeichenfolge ist. Dieses benannte Element sollte in einem anderen Bereich des XAML-Markups bereits vorhanden sein.

Storyboard.TargetProperty zielt auf eine bestimmte Eigenschaft des Elements ab, die von Storyboard.TargetName benannt wird. Der für Storyboard.TargetProperty angegebene Wert enthält ein Konzept, das als Eigenschaftspfad bezeichnet wird. Weitere Informationen zum Festlegen eines Eigenschaftspfads für eine Animation finden Sie in den Hinweise unter SetTargetProperty oder unter Storyboard.TargetProperty sowie unter dem Thema PropertyPath-Syntax.

Zur Unterstützung des XAML-Prozessors beim Zugriff auf die angefügten Eigenschaften und um entsprechende Get- und Set-Vorgänge im Code verfügbar zu machen, besitzt jede in XAML angefügte Eigenschaft ein Paar der Accessormethoden Get und Set. Beispielsweise unterstützen die Methoden GetTargetName und SetTargetName Storyboard.TargetName und bieten dafür die entsprechende Unterstützung nur für Code. Alternativ können Sie das Abhängigkeitseigenschaftensystem verwenden, um den Wert der angefügten Eigenschaft abzurufen oder festzulegen. Rufen Sie GetValue oder SetValue auf, und übergeben Sie die Argumente der festzulegenden Abhängigkeitseigenschaft sowie einen Verweis auf das Zielobjekt, für das der Wert abgerufen oder festgelegt werden soll.

Beispiele

Im folgenden Beispiel wird die Verwendung der Methoden Begin, Stop, Pause und Resume zum Steuern der Wiedergabe eines Storyboards (Animation) veranschaulicht. Ein Satz 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();
}


Im folgenden Beispiel wird veranschaulicht, wie ein Storyboard im Code erstellt wird.


//using Windows.UI.Xaml.Media.Animation;
//using Windows.UI.Xaml.Shapes;

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;
    Windows.UI.Color myColor = Windows.UI.Color.FromArgb(255, 255, 0, 0);
    SolidColorBrush myBrush = new SolidColorBrush();
    myBrush.Color = myColor;
    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();
}


Anforderungen

Mindestens unterstützter Client

Windows 8 [Nur Windows Store-Apps]

Mindestens unterstützter Server

Windows Server 2012 [Nur Windows Store-Apps]

Namespace

Windows.UI.Xaml.Media.Animation
Windows::UI::Xaml::Media::Animation [C++]

Metadaten

Windows.winmd

Siehe auch

Timeline
Schnellstart: Animieren der Benutzeroberfläche
Keyframe-Animationen und Beschleunigungsfunktionsanimationen
Eigenschaftenpfadsyntax
Storyboard-Animationen
Storyboard-Animationen für visuelle Zustände
Übersicht über angefügte Eigenschaften
PropertyPath-Syntax

 

 

Anzeigen:
© 2015 Microsoft