欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WPF实现画线动画效果实例

程序员文章站 2022-08-31 19:34:20
本文实例为大家分享了WPF实现画线动画的具体代码,供大家参考,具体内容如下 需求:一条直线(不是曲线),模范笔画一样在画布上逐渐画出来。但前提是,用后台代码实现,并非WPF标签...
本文实例为大家分享了WPF实现画线动画的具体代码,供大家参考,具体内容如下

需求:一条直线(不是曲线),模范笔画一样在画布上逐渐画出来。但前提是,用后台代码实现,并非WPF标签

效果:

WPF实现画线动画效果实例

上代码:

///

/// Window2.xaml 的交互逻辑

///

public partial class Window2 : Window

{

public Window2()

{

InitializeComponent();

var canvas = new Canvas();

Content = canvas;

var points =

new List()

{

new Point(10, 10),

new Point(90, 90),

new Point(60, 10),

new Point(250, 90),

new Point(10, 10)

};

var sb = new Storyboard();

for (int i = 0; i < points.Count - 1; i++)

{

var lineGeometry = new LineGeometry(points[i], points[i]);

var path =

new Path()

{

Stroke = Brushes.Black,

StrokeThickness = 2,

Data = lineGeometry

};

canvas.Children.Add(path);

var animation =

new PointAnimation(points[i], points[i + 1], new Duration(TimeSpan.FromMilliseconds(1000)))

{

BeginTime = TimeSpan.FromMilliseconds(i * 1010)

};

sb.Children.Add(animation);

RegisterName("geometry" + i, lineGeometry);

Storyboard.SetTargetName(animation, "geometry" + i);

Storyboard.SetTargetProperty(animation, new PropertyPath(LineGeometry.EndPointProperty));

}

MouseDown += (s, e) => sb.Begin(this);

}

}