WPF实现射线效果动画
2014-10-26 12:10
676 查看
最近的一个项目中有个需求是:从一个点向其它多个点发出射线,要求这些射线同时发出,同时到达。
我就想到了用WPF的动画来实现。WPF中有Line类用于绘制直线,但这个类中好像没有这样的方法能直接满足需求,只能自己写一个方法(我对WPF也只是刚入门,不确定是否有这样的方法)。
射线可以看作一个起点不变而终点一直在变化的直线,所以可以用WPF中的线性插值动画来动态改变终点坐标。
关于WPF动画的内容,有篇文章感觉很不错
http://www.cnblogs.com/libaoheng/archive/2012/04/23/2466242.html
我就想到了用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利用动画实现图形变化产生3d效果
- WPF实现左右移动(晃动)动画效果
- WPF实现渐变淡入淡出的动画效果
- WPF 画线动画效果实现
- WPF实现画线动画效果
- Silverlight、WPF 平台实现 旋转、缩放等动画效果
- wpf的动画实现效果
- WPF实现左右移动(晃动)动画效果
- WPF实现3D翻转的动画效果
- WPF启动动画效果实现
- wpf实现三维漫游动画效果
- WPF中创建水晶动画效果的treeview控件
- WPF中创建水晶动画效果的treeview控件
- WPF中创建水晶动画效果的treeview控件
- WPF中创建水晶动画效果的treeview控件
- WPF中创建水晶动画效果的treeview控件
- 用c#和GDI+实现杂志翻页动画效果
- 用C++Builder实现任务栏图标动画效果
- 用JavaScript实现动画效果
- 利用MFC实现动画效果