洪星的博客(原创版,新闻除外)

信息技术 软件开发 电信 移动通信(欢迎和我交流:QQ219402,15152399197)

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  12 随笔 :: 0 文章 :: 62 评论 :: 0 引用

代码中使用了 C# 3.0 语法

效果是一个红色矩形从右下角移动到左上角

仅仅是示例,演示如何在代码中动态创建动画

 

MainPage.xaml
<UserControl x:Class="Hongcing.Silverlight.Create_And_Run_Animation"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas Loaded="LayoutRoot_Loaded" />
</UserControl>

 

MainPage.xaml.cs
1 using System;
2  using System.Windows;
3  using System.Windows.Controls;
4  using System.Windows.Media;
5 using System.Windows.Media.Animation;
6 using System.Windows.Shapes;
7
8 namespace Hongcing.Silverlight
9 {
10 public partial class Create_And_Run_Animation : UserControl
11 {
12 public Create_And_Run_Animation()
13 {
14 InitializeComponent();
15 }
16
17 private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
18 {
19 var redRectangle = new Rectangle
20 {
21 Width = 300,
22 Height = 200,
23 Fill = new SolidColorBrush(Colors.Red),
24 Stroke = new SolidColorBrush(Colors.Black)
25 };
26
27 (sender as Panel).Children.Add(redRectangle);
28
29 var leftAnimation = new DoubleAnimation
30 {
31 Duration = new Duration(TimeSpan.FromSeconds(5)),
32 From = 700,
33 To = 0
34 };
35
36 var topAnimation = new DoubleAnimation
37 {
38 Duration = leftAnimation.Duration,
39 From = 350,
40 To = 0
41 };
42
43 Storyboard.SetTarget(leftAnimation, redRectangle);
44 Storyboard.SetTarget(topAnimation, redRectangle);
45
46 //属性路径也可以用 new PropertyPath("(Canvas.Left)")、new PropertyPath("(Canvas.Top)")
47 Storyboard.SetTargetProperty(leftAnimation, new PropertyPath(Canvas.LeftProperty));
48 Storyboard.SetTargetProperty(topAnimation, new PropertyPath(Canvas.TopProperty));
49
50 //此处没有添加到资源中,而是直接启动动画。
51 new Storyboard { Children = { leftAnimation, topAnimation } }.Begin();
52 }
53 }
54 }
55

 

我的博客:http://www.cnblogs.com/hongcing
我的签名:
洪星
关注 - 0
粉丝 - 1
1
1
(请您对文章做出评价)
« 上一篇:C# 移动窗口 适用于有标题栏和无标题栏窗体 超级简单版
» 下一篇:.NET 4.0 无法直接运行 .NET 2.0 程序的问题
posted on 2010-02-09 20:11 洪星 阅读(1545) 评论(7) 编辑 收藏 所属分类: C#, Silverlight

评论

#1楼 2010-02-09 21:21 Gnie      
把这些效果都用C#来做以后维护起来会很麻烦吧,况且你的这个效果还比较简单,如果复杂起来的话C#会很繁琐了,XAML能做的事干就不要用C#了。
 回复 引用 查看   

#2楼 2010-02-09 21:39 Chen@Ethos      
学习一下,两种方法进行比较,才能知道优劣。
 回复 引用 查看   

#3楼[楼主] 2010-02-09 21:57 洪星      
@Gnie
只是一个演示而已,在xaml还是在code中实现,要看各人喜好了!
 回复 引用 查看   

#4楼 2010-02-09 22:28 kaure      
那个silverlight3游戏教程系列里面讲了很全的呢
不过……感谢LZ的贡献……
 回复 引用 查看   

#5楼 2010-02-10 15:13 john.net      
我喜欢在code里面实现
 回复 引用 查看   

#6楼 2010-02-10 16:46 Sunny Peng      
这纯代码贴不说...而且...
首页水文越来越多了。
 回复 引用 查看   

#7楼 2010-02-10 21:34 aspnetx      
确实遇到过这种情况,某些时候就得靠coding来解决问题。
 回复 引用 查看