Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este ejemplo se muestra cómo animar la Matrix propiedad de un MatrixTransform mediante fotogramas clave.
Ejemplo
En el ejemplo siguiente se usa la clase MatrixAnimationUsingKeyFrames para animar la propiedad Matrix de un MatrixTransform. En el ejemplo se usa el MatrixTransform objeto para transformar la apariencia y la posición de un Button.
Esta animación usa la DiscreteMatrixKeyFrame clase para crear dos fotogramas clave y hace lo siguiente con ellos:
Anima el primero Matrix durante los primeros 0,2 segundos. El ejemplo cambia las propiedades M11 y M12 de Matrix. Este cambio hace que el botón se extienda y se desfase. En el ejemplo también se cambian las OffsetX propiedades y OffsetY para que el botón cambie de posición.
Anima el segundo Matrix a los 1,0 segundos. El botón se mueve a otra posición mientras el botón ya no está sesgado ni extendido.
Repite la animación indefinidamente.
Nota:
Los fotogramas clave que derivan del DiscreteMatrixKeyFrame objeto crean saltos repentinos entre valores, es decir, el movimiento de la animación es jerky.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MatrixAnimationUsingPath Example">
<StackPanel Margin="20">
<Canvas HorizontalAlignment="Left" Width="340" Height="240" >
<!-- The Button that is animated. -->
<Button Margin="-30,0,0,0" MinWidth="100">
Click
<Button.RenderTransform>
<MatrixTransform x:Name="myMatrixTransform">
<MatrixTransform.Matrix >
<Matrix OffsetX="10" OffsetY="100"/>
</MatrixTransform.Matrix>
</MatrixTransform>
</Button.RenderTransform>
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Loaded">
<BeginStoryboard>
<Storyboard>
<!-- Animates the button's MatrixTransform using MatrixAnimationUsingKeyFrames.
Animates to first Matrix in the first 0.2 seconds, to second Matrix in the next
second, and then starts over. Notice that the first KeyFrame stretches the button
and skews it using the M11 and M12 Matrix properties respectively. Also, animations are
using Discrete interpolation, so the MatrixTransform appears to "jump" from one value
to the next. -->
<MatrixAnimationUsingKeyFrames
Storyboard.TargetName="myMatrixTransform"
Storyboard.TargetProperty="Matrix"
Duration="0:0:3"
RepeatBehavior="Forever">
<DiscreteMatrixKeyFrame KeyTime="0:0:0.2">
<DiscreteMatrixKeyFrame.Value>
<Matrix OffsetX="100" OffsetY="200" M11="3" M12="1" />
</DiscreteMatrixKeyFrame.Value>
</DiscreteMatrixKeyFrame>
<DiscreteMatrixKeyFrame KeyTime="0:0:1">
<DiscreteMatrixKeyFrame.Value>
<Matrix OffsetX="300" OffsetY="100" M11="1" M12="0" />
</DiscreteMatrixKeyFrame.Value>
</DiscreteMatrixKeyFrame>
</MatrixAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
</Canvas>
</StackPanel>
</Page>
Para ver el ejemplo completo, consulte Ejemplo de animación de cuadros clave.
Consulte también
.NET Desktop feedback