DoubleAnimation
接着上一篇使用的是XAML来实现动画的效果,今天我们用代码来实现下:
我们在窗体上放一个Rectangle,对这个Rectangle实现宽度的变化。当我们按下按钮来触发它的宽度变化。
具体代码如下:
private void button1_Click(object sender, RoutedEventArgs e)
{
DoubleAnimation doubleAnimation = new DoubleAnimation();
doubleAnimation.From = 0;
doubleAnimation.To = 60;
//TimeSpan时间的绝对值
doubleAnimation.Duration =new Duration(new TimeSpan(0,0,0,3));
//无限次重复
doubleAnimation.RepeatBehavior = RepeatBehavior.Forever;
//按相反的顺序播放
doubleAnimation.AutoReverse = true;
//启动动画,并把变化赋给宽度
rectangle1.BeginAnimation(Rectangle.WidthProperty,doubleAnimation);
}
我们在加点颜色的变化如何。
在XAML中我们先要给个SolidColorBrush的Name。
<Rectangle.Fill>
<SolidColorBrush x:Name="solid1" Color="Green"/>
</Rectangle.Fill>
然后再按钮代码中添加:
ColorAnimation colorAnimation=new ColorAnimation(
Color.FromRgb(255,0,0),Color.FromRgb(0,0,255),
new Duration(new TimeSpan(0,0,3)));
colorAnimation.RepeatBehavior = RepeatBehavior.Forever;
colorAnimation.AutoReverse = true;
solid1.BeginAnimation(SolidColorBrush.ColorProperty,colorAnimation);
效果图:
开始前
开始后的某一秒: