Animación de rotar rectángulo de WPF en XAML
animation autorotate (1)
¿Cómo puedo rotar un rectángulo infinitamente? SOLAMENTE dentro de la definición de xaml. Hasta ahora encontré una solución con código pero no xaml: http://www.codeproject.com/Articles/23257/Beginner-s-WPF-Animation-Tutorial que utilizo así:
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
var da = new DoubleAnimation(360, 0, new Duration(TimeSpan.FromSeconds(1)));
var rt = new RotateTransform();
rect1.RenderTransform = rt;
rect1.RenderTransformOrigin = new Point(0.5, 0.5);
da.RepeatBehavior = RepeatBehavior.Forever;
rt.BeginAnimation(RotateTransform.AngleProperty, da);
}
Pero, ¿cómo puedo lograr esto solo con XAML?
Algo como esto
<Rectangle x:Name="rect1" RenderTransformOrigin="0.5, 0.5">
<Rectangle.RenderTransform>
<!-- giving the transform a name tells the framework not to freeze it -->
<RotateTransform x:Name="noFreeze" />
</Rectangle.RenderTransform>
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)"
To="-360" Duration="0:0:1" RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
Por supuesto, puede eliminar el desencadenante Loaded
y ejecutar este guión gráfico cuando lo desee.