C# 线性动画

线性动画就是指仅由变化起点,变化终点,变化幅度,变化时间4个要素构成的动画
变化时间(Duration属性):必须指定,数据类型为Duration。
变化终点(To属性):如果没有指定变化终点,程序将采用上一次动画的终点或默认值。
变化幅度(By属性):如果同时指定了变化终点,变化幅度将被忽略。
变化起点(from属性):如果没有指定变化起点侧以变化目标属性的当前值为起点。
XAML代码:

  
        

界面只包含一个Button,这个Button的RenderTransform属性值是一个名为tt的Translate对象,改变这个对象的X和Y值就会让Button的显示位置(而不是真实位置)变化。事件处理代码如下:
private void Button_Click(object sender, RoutedEventArgs e)
        {
            DoubleAnimation daX = new DoubleAnimation();
            DoubleAnimation daY = new DoubleAnimation();
            //指定终点
            Random r = new Random();
            daX.To = r.NextDouble() * 300;
            daY.To = r.NextDouble() * 300; 
            //指定时常
            Duration duration = new Duration(TimeSpan.FromMilliseconds(300));
            daX.Duration = duration;
            daY.Duration = duration; 
            //动画的主体是TranslateTransform变形,而非Button
            this.tt.BeginAnimation(TranslateTransform.XProperty, daX);
            this.tt.BeginAnimation(TranslateTransform.YProperty, daY);
        }
        

因为TranslateTransform的X,Y属性均为Double类型,所以选用DoubleAnimation来使之变化。代码中声明了daX和daY两个DoubleAnimation变量并分别为之创建引用实列。接下来的代码依次为他们设置了起始值,终止值,变化事件。最后,调用BeginAnimation方法,让daX作用在TranslateTransform的XProperty依赖属性上,让daY作用在TranslateTransfrom的YPropertry依赖属性上
C# 线性动画_第1张图片
运行程序,单击按钮,按钮都会从起始位置向窗体右下运动

C# 线性动画_第2张图片

你可能感兴趣的:(C#基础)