Vorgehensweise: Verwenden von Ereignistriggern zum Steuern eines Storyboards nach dem Start
In diesem Beispiel wird gezeigt, wie ein Storyboard nach dem Start gesteuert wird. Um ein Storyboard mithilfe von XAML zu starten, verwenden Sie BeginStoryboard. Dadurch werden die Animationen auf die Objekte und Eigenschaften verteilt, die animiert werden sollen, und das Storyboard wird gestartet. Wenn Sie BeginStoryboard einen Namen geben, indem Sie dessen Name-Eigenschaft angeben, machen Sie es zu einem steuerbaren Storyboard. Anschließend können Sie das Storyboard nach dem Start interaktiv steuern.
Verwenden Sie die folgenden Storyboard-Aktionen zusammen mit EventTrigger-Objekten, um ein Storyboard zu steuern.
PauseStoryboard: Hält das Storyboard an.
ResumeStoryboard: Setzt ein angehaltenes Storyboard fort.
SetStoryboardSpeedRatio: Ändert die Storyboardgeschwindigkeit.
SkipStoryboardToFill: Bringt ein Storyboard bis zum Ende seiner Füllperiode, wenn es eine hat.
StopStoryboard: Stoppt das Storyboard.
RemoveStoryboard: Entfernt das Storyboard und gibt Ressourcen frei.
Beispiel
Im folgenden Beispiel werden steuerbare Storyboardaktionen verwendet, um ein Storyboard interaktiv zu steuern.
Anmerkung
Um ein Beispiel dafür zu sehen, wie man ein Storyboard mit Code steuert, siehe ein Storyboard steuern, nachdem es gestartet ist, indem Sie dessen interaktive Methoden verwenden.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://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 im Animationsbeispielkatalog.
Siehe auch
.NET Desktop feedback