Xaml 代码如下:
<Grid x:Name="LayoutRoot">
<Image x:Name="fan" Width="200" Height="200" Source="image/fan.png" Stretch="Fill" RenderTransformOrigin="0.5,0.5"/>
<Button Content="启动" Height="27" Margin="277,0,275,67" VerticalAlignment="Bottom" Click="Button_Click"/>
</Grid>
后台代码:
/// <summary>
/// 风扇旋转动画
/// </summary>
public void Rotate()
{
Storyboard storyboard = new Storyboard();//创建故事板
DoubleAnimation doubleAnimation = new DoubleAnimation();//实例化一个Double类型的动画
RotateTransform rotate = new RotateTransform();//旋转转换实例
this.fan.RenderTransform = rotate;//给图片空间一个转换的实例
storyboard.RepeatBehavior = RepeatBehavior.Forever;//设置重复为 一直重复
storyboard.SpeedRatio = 2;//播放的数度
//设置从0 旋转360度
doubleAnimation.From = 0;
doubleAnimation.To = 360;
doubleAnimation.Duration = new Duration(new TimeSpan(0, 0, 2));//播放时间长度为2秒
Storyboard.SetTarget(doubleAnimation, this.fan);//给动画指定对象
Storyboard.SetTargetProperty(doubleAnimation,
new PropertyPath("RenderTransform.Angle"));//给动画指定依赖的属性
storyboard.Children.Add(doubleAnimation);//将动画添加到动画板中
storyboard.Begin(this.fan);//启动动画
}
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
Rotate();
}