Gewusst wie: Verwenden von Ereignistriggern zum Steuern eines Storyboards nach dessen Start
In diesem Beispiel wird das Steuern eines Storyboard nach dessen Start veranschaulicht. Zum Starten eines Storyboard mithilfe von XAML verwenden Sie BeginStoryboard. Dies verteilt die Animationen an die zu animierenden Objekte und Eigenschaften und startet anschließend das Storyboard. Wenn Sie BeginStoryboard einen Namen geben, indem Sie die entsprechende Name-Eigenschaft festlegen, wird dieses Storyboard steuerbar. Sie können das Storyboard dann interaktiv steuern, nachdem es gestartet wurde.
Verwenden Sie zum Steuern eines Storyboards die folgenden Storyboard-Aktionen zusammen mit EventTrigger-Objekten.
PauseStoryboard: Hält das Storyboard an.
ResumeStoryboard: Setzt ein angehaltenes Storyboard fort.
SetStoryboardSpeedRatio: Ändert die Storyboard-Geschwindigkeit.
SkipStoryboardToFill: Setzt ein Storyboard an das Ende seines Füllzeitraums, sofern vorhanden.
StopStoryboard: Beendet das Storyboard.
RemoveStoryboard: Entfernt das Storyboard und gibt Ressourcen frei.
Beispiel
Im folgenden Beispiel werden steuerbare Storyboard-Aktionen zur interaktiven Steuerung eines Storyboards verwendet.
Hinweis: Ein Beispiel zum Steuern eines Storyboards mithilfe von Code finden Sie unter Gewusst wie: Steuern eines Storyboards nach dem Start.
<Page xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
WindowTitle="Controlling a Storyboard" >
<StackPanel Margin="20" >
<!-- This rectangle is animated. -->
<Rectangle Name="myRectangle"
Width="100" Height="20" Margin="12,0,0,5" Fill="#AA3333FF" HorizontalAlignment="Left" />
<!-- This StackPanel contains all the Buttons. -->
<StackPanel Orientation="Horizontal" Margin="0,30,0,0">
<Button Name="BeginButton">Begin</Button>
<Button Name="PauseButton">Pause</Button>
<Button Name="ResumeButton">Resume</Button>
<Button Name="SeekButton">Seek</Button>
<Button Name="SkipToFillButton">Skip To Fill</Button>
<Button Name="SetSpeedRatioButton">Triple Speed</Button>
<Button Name="StopButton">Stop</Button>
<StackPanel.Triggers>
<!-- Begin the Storyboard -->
<EventTrigger RoutedEvent="Button.Click" SourceName="BeginButton">
<BeginStoryboard Name="MyBeginStoryboard">
<Storyboard >
<DoubleAnimation
Storyboard.TargetName="myRectangle"
Storyboard.TargetProperty="Width"
Duration="0:0:5" From="100" To="500" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<!-- Pause the Storyboard -->
<EventTrigger RoutedEvent="Button.Click" SourceName="PauseButton">
<PauseStoryboard BeginStoryboardName="MyBeginStoryboard" />
</EventTrigger>
<!-- Resume the Storyboard -->
<EventTrigger RoutedEvent="Button.Click" SourceName="ResumeButton">
<ResumeStoryboard BeginStoryboardName="MyBeginStoryboard" />
</EventTrigger>
<!-- Seek one second into the storyboard's active period. -->
<EventTrigger RoutedEvent="Button.Click" SourceName="SeekButton">
<SeekStoryboard
BeginStoryboardName="MyBeginStoryboard"
Offset="0:0:1" Origin="BeginTime" />
</EventTrigger>
<!-- Skip to Fill -->
<EventTrigger RoutedEvent="Button.Click" SourceName="SkipToFillButton">
<SkipStoryboardToFill BeginStoryboardName="MyBeginStoryboard" />
</EventTrigger>
<!-- Stop the Storyboard -->
<EventTrigger RoutedEvent="Button.Click" SourceName="StopButton">
<StopStoryboard BeginStoryboardName="MyBeginStoryboard" />
</EventTrigger>
<!-- Triple the speed of the Storyboard -->
<EventTrigger RoutedEvent="Button.Click" SourceName="SetSpeedRatioButton">
<SetStoryboardSpeedRatio SpeedRatio="3" BeginStoryboardName="MyBeginStoryboard" />
</EventTrigger>
</StackPanel.Triggers>
</StackPanel>
</StackPanel>
</Page>
Weitere Beispiele finden Sie in der Beispielsammlung zu Animationen.
Siehe auch
Aufgaben
Gewusst wie: Steuern eines Storyboards nach dem Start