Silverlight开发历程—C#代码添加动画

本文介绍了一个使用XAML和C#实现的动画示例,通过创建椭圆对象并应用Double动画来改变其位置及大小,实现了动态效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XAML:

<Canvas x:Name="LayoutRoot" Background="White">
        <Canvas x:Name="canvas_parent" />
    </Canvas>

C#:

  public AnimationWithCSharp()
        {
            InitializeComponent();
            //创建椭圆对象
            Ellipse ellipse = new Ellipse();
            ellipse.Width = 150;
            ellipse.Height = 150;
            ellipse.Fill = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
            //添加到Canvas中
            canvas_parent.Children.Add(ellipse);
            //创建Double动画
            DoubleAnimation animation1 = new DoubleAnimation();
            DoubleAnimation animation2 = new DoubleAnimation();
            DoubleAnimation animation3 = new DoubleAnimation();
            //设置动画的From   To属性
            animation1.From = 20;
            animation1.To = 400;
            animation2.From = 20;
            animation2.To = 250;
            animation3.From = 30;
            animation3.To = 150;
            //设置动画时间 
            animation1.Duration = new Duration(new TimeSpan(0, 0, 0, 1));
            animation2.Duration = new Duration(new TimeSpan(0, 0, 0, 1));
            animation3.Duration = new Duration(new TimeSpan(0, 0, 0, 1));
            //创建故事面板
            Storyboard sb = new Storyboard();
            //设置故事面板的时间
            sb.Duration = new Duration(new TimeSpan(0, 0, 0, 1));
            //设置动画是否重复播放
            sb.RepeatBehavior = RepeatBehavior.Forever;
           //添加三个动画到故事面板中
            sb.Children.Add(animation1);
            sb.Children.Add(animation2);
            sb.Children.Add(animation3);
            //设置动画的作用目标
            Storyboard.SetTarget(animation1, ellipse);
            Storyboard.SetTarget(animation2, ellipse);
            Storyboard.SetTarget(animation3, ellipse);
            //设置动画作用属性
            Storyboard.SetTargetProperty(animation1,new PropertyPath("(Canvas.Left)"));
            Storyboard.SetTargetProperty(animation2, new PropertyPath("(Canvas.Top)"));
            Storyboard.SetTargetProperty(animation3, new PropertyPath("Height"));
            //添加故事板到,Canvas中
            canvas_parent.Resources.Add("storyboard", sb);
            //开始播放动画
            sb.Begin();
        }
运行结果:会有一个圆在不停的变换形状态和位置。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值