原文:WPF实现射线效果动画

最近的一个项目中有个需求是:从一个点向其它多个点发出射线,要求这些射线同时发出,同时到达。

我就想到了用WPF的动画来实现。WPF中有Line类用于绘制直线,但这个类中好像没有这样的方法能直接满足需求,只能自己写一个方法(我对WPF也只是刚入门,不确定是否有这样的方法)。

射线可以看作一个起点不变而终点一直在变化的直线,所以可以用WPF中的线性插值动画来动态改变终点坐标。

public void RayAnimation(Point from, Point to)
{
Storyboard myStoryBoard = new Storyboard();
Line myLine = new Line();
myLine.Stroke = Brushes.Red;
myLine.StrokeThickness = 3;
myLine.X1 = from.X; //必须要设置Line的起点X1,Y1,X2,Y2则不需要设置
myLine.Y1 = from.Y;
Canvas1.Children.Add(myLine); //添加到Canvas1中
DoubleAnimation animationX = new DoubleAnimation(); //两个动画,分别负责myLine.X2和myLine.Y2的变化
DoubleAnimation animationY = new DoubleAnimation();
animationX.Duration = TimeSpan.FromMilliseconds(3000);
animationY.Duration = TimeSpan.FromMilliseconds(3000);
animationX.From = from.X;
animationX.To = to.X;
animationY.From = from.Y;
animationY.To = to.Y;
Storyboard.SetTarget(animationX, myLine); //设置Animation的目标
Storyboard.SetTarget(animationY, myLine);
Storyboard.SetTargetProperty(daX, new System.Windows.PropertyPath("(Line.X2)")); //指定目标的属性
Storyboard.SetTargetProperty(daY, new System.Windows.PropertyPath("(Line.Y2)"));
myStoryBoard.Children.Add(animationX); //添加到StoryBoard中
myStoryBoard.Children.Add(animationY);
myStoryBoard.Begin(); //开始动画
}

关于WPF动画的内容,有篇文章感觉很不错

http://www.cnblogs.com/libaoheng/archive/2012/04/23/2466242.html

WPF实现射线效果动画的更多相关文章

  1. 【WPF】两则动画效果

    原文:[WPF]两则动画效果 引言 利用WPF的动画可以轻而易举的实现各种各样的特效,如擦除,滑动进入等,先看两个效果图 第一个效果 这个动画其实利用了OpacityMask和LinearGradie ...

  2. WPF 3D 平移模型+动画(桥梁检测系统)

    原文:WPF 3D 平移模型+动画(桥梁检测系统) 关于WPF 3D,网上有很多旋转的例子,但是关于平移的例子并不是太多.本文并非WPF 3D扫盲篇,因此需要对WPF 3D有一定了解,至少知道View ...

  3. WPF提示框效果

    WPF提示框效果 1,新建WPF应用程序 2,添加用户控件Message 3,在Message中编写如下代码 <Border x:Name="border" BorderTh ...

  4. wpf 模拟3D效果(和手机浏览图片效果相似)(附源码)

    原文 wpf 模拟3D效果(和手机浏览图片效果相似)(附源码) pf的3D是一个很有意思的东西,类似于ps的效果,类似于电影动画的效果,因为动画的效果,(对于3D基础的摄像机,光源,之类不介绍,对于依 ...

  5. [WPF] 圆形等待效果

    原文:[WPF] 圆形等待效果 自己做着玩儿的,留着以后用,效果类似下面的 GIF 动画. <Grid Width="35" Height="35"> ...

  6. WPF特效-鱼游动动画3

    原文:WPF特效-鱼游动动画3 WPF不支持骨骼,故使用3DMax导出了序列模型文件(.mtl;.obj). 方法1: 使用Blend 2013打开所有obj文件,拖动排列一下即可在usercontr ...

  7. WPF特效-鱼游动动画

    原文:WPF特效-鱼游动动画   实现思路:           通过VisualBrush Binding方式获取鱼局部图像,在Viewport3D中创建ModelVisual3D块并把获取到的局部 ...

  8. WPF特效-鱼游动动画2

    原文:WPF特效-鱼游动动画2           纯代码撸动画实践2:           原图:(png格式)                                            ...

  9. WPF 精修篇 路径动画

    原文:WPF 精修篇 路径动画 路径动画 是让一个对象围绕指定Path 的运动路径 进行移动的动画 举栗子 路径动画 使用 Blend 来设置 是十分简单的 首先用工具 笔  点出一条线 新建一个圆形 ...

随机推荐

  1. Quick Sort Algorithm

    快速排序算法实现代码: //============================================================================ // Name : ...

  2. python登录验证程序

    自己写的一个python登录验证程序: 基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失 ...

  3. Ubuntu14.04中踩过的坑

    今天安装Ubuntu 14.0.4,因为需要使用python3,所以就直接配置如下:sudo rm /usr/bin/pythonsudo ln -s /usr/bin/python3.5  /usr ...

  4. C# 实现Ajax的方式总结

    1JavaScript实现AJAX效果 2.AjaxPro实现AJAX应用 3.微软AJAX控件库开发AJAX 比如ScriptManager,updatePanel,timer等 4.jquery ...

  5. SpringMVC,采用的是SpringJDBC

    上一次复习搭建了SpringMVC+Mybatis,这次搭建一下SpringMVC,采用的是SpringJDBC,没有采用任何其他的ORM框 架,SpringMVC提供了一整套的WEB框架,所以如果想 ...

  6. Oracle数据库(三)

    专题一:oracle查询 1.where查询 查询部门编号是1的部门信息 ; 查询姓名是kw的员工,字符串使用‘’,内容大小写敏感 select *from emp where name='kw' 查 ...

  7. LoaderManager使用具体解释(一)---没有Loader之前的世界

    来源: http://www.androiddesignpatterns.com/2012/07/loaders-and-loadermanager-background.html 感谢作者Alex ...

  8. 两个常见Qt编译错误的解决

    作者:朱金灿 来源:http://blog.csdn.net/clever101 如果在电脑上安装了两个Qt版本,在编译一个工程时有可能出现如下的编译错误: ERROR: failed to refr ...

  9. PHP通用非法字符检测函数集锦

    <? // [变量定义规则]:‘C_’=字符型,‘I_’=整型,‘N_’=数字型,‘L_’=布尔型,‘A_’=数组型 // ※CheckMoney($C_Money) 检查数据是否是 99999 ...

  10. 中小研发团队架构实践之分布式协调器.Net版ZooKeeper

    原文:中小研发团队架构实践之分布式协调器.Net版ZooKeeper 一.ZooKeeper是什么  Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月 ...