Como: Usar acionadores de eventos para controlar um Storyboard após seu início
Este exemplo mostra como controlar um Storyboard após sua inicialização. Para iniciar um Storyboard usando XAML, use BeginStoryboard, que distribui as animações aos objetos e às propriedades que elas animam e, em seguida, inicia o storyboard. Se você der um nome ao BeginStoryboard, especificando sua propriedade Name, você irá torná-lo um storyboard controlável. Você pode então interativamente controlar o storyboard depois que ele é iniciado.
Use as seguintes ações de storyboard em conjunto com objetos EventTrigger para controlar um storyboard.
PauseStoryboard: Pausa o storyboard.
ResumeStoryboard: Continua um storyboard pausado.
SetStoryboardSpeedRatio: Altera a velocidade do storyboard.
SkipStoryboardToFill: avança um storyboard até o final do seu período de preenchimento, se ele tiver um.
StopStoryboard: Para o storyboard.
RemoveStoryboard Remove o storyboard, liberando recursos.
Exemplo
O exemplo a seguir, usa ações de storyboard controláveis para controlar interativamente um storyboard.
Observação: Para ver um exemplo de controle de um storyboard por meio de código, consulte Como: Controlar um storyboard após ele inicia.
<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>
Para exemplos adicionais, veja Galeria de exemplo de animação.
Consulte também
Tarefas
Como: Controlar um storyboard após ele inicia