Cómo: Utilizar desencadenadores de eventos para controlar un guión gráfico después de su inicio
En este ejemplo se muestra cómo controlar un Storyboard después de que se inicie. Para iniciar un Storyboard mediante XAML, use BeginStoryboard, que distribuye las animaciones a los objetos y propiedades que animan y, a continuación, inicia el guion gráfico. Si asigna un nombre a BeginStoryboard mediante la especificación de su propiedad Name, lo convierte en un guion gráfico controlable. De este modo podrá controlar el guion gráfico de forma interactiva después de que se haya iniciado.
Use las siguientes acciones del guion gráfico junto con objetos EventTrigger para controlar un guion gráfico.
PauseStoryboard: pausa el guion gráfico.
ResumeStoryboard: reanuda un guion gráfico que está en pausa.
SetStoryboardSpeedRatio: cambia la velocidad del guion gráfico.
SkipStoryboardToFill: avanza el guion gráfico hasta el final de su periodo de relleno, si tuviera uno.
StopStoryboard: detiene el guion gráfico.
RemoveStoryboard: quita el guion gráfico y libera recursos.
Ejemplo
En el ejemplo siguiente se utilizan acciones controlables de guion gráfico para controlar interactivamente un guion gráfico.
Nota:
Para ver un ejemplo de control de un guion gráfico mediante código, consulte Controlar un guion gráfico después de empezar a usar sus métodos interactivos.
<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>
Para obtener ejemplos adicionales, consulte la Galería de ejemplos de animaciones.
Vea también
.NET Desktop feedback