使用C1FlashCanvas绘制Flash单帧画面或背景

本文介绍C1FlashCanvas控件绘制Flash单帧画面或背景的方法。C1FlashCanvas是一个与.NET图形类相似的组件,包含了与.NET Graphics类完全相同的绘制图形的方法和属性。创建C1FlashCanvas。绘制Flash单帧画面。绘制Flash背景。生成SWF文件。用Fill方法画出的图形如下所示:<p><a href="http://www.grapecity.com.cn/image.ashx?picture=Flash-Fill.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="Flash-Fill" src="http://www.grapecity.com.cn/image.ashx?picture=Flash-Fill_thumb.png" alt="Flash-Fill" width="538" height="321" border="0" /></a></p>

发布于 2014/05/28 00:00

ComponentOne Enterprise

本文介绍C1FlashCanvas控件绘制Flash单帧画面或背景的方法。C1FlashCanvas是一个与.NET图形类相似的组件,包含了与.NET Graphics类完全相同的绘制图形的方法和属性。

创建C1FlashCanvas

首先从工具箱里拖拽C1FlashCanvas到窗体,也可以使用代码声明,如:

private C1.C1Flash.C1FlashCanvas c1FlashCanvas1 = new C1.C1Flash.C1FlashCanvas();

绘制Flash单帧画面

在绘制Flash单帧画面前,使用C1FlashCanvas的Clear方法清除canvas里的所有内容。

然后使用C1FlashCavas的Draw方法绘制需要的图形。它可以绘制文本、图像、线条、矩形、椭圆、扇形、弧形、圆角矩形、多边形,贝塞尔曲线,以及更多,可以参考C1FlashCanvas下的DrawString,DrawImage,DrawLine等方法。在本文Demo中有详细的代码说明各种图形的画法,下面就用绘制Rectangle举例说明如何绘制图形。

用代码随机生成一个Rectangle,参考下面代码中的RandomRectangle方法,然后通过C1FlashCanvas的DrawRectangle方法在canvas里绘制这个Rectangle。

private Pen _pen = new Pen(Color.Black);
_pen.Color = this.panel_DrawColor.BackColor;
_pen.Width = (int)this.upd_LineWidth.Value;
for(int i = 0; i < 20; i++)
this.c1FlashCanvas1.DrawRectangle(_pen, RandomRectangle());

private Rectangle RandomRectangle()
{
	int maxWidth = this.c1FlashCanvas1.Width;
	int maxHeight = this.c1FlashCanvas1.Height;
	Point pos = new Point(_rand.Next(_minSize, maxWidth), _rand.Next(_minSize, maxHeight));
	int width = _rand.Next(_minSize, maxWidth/2);
	int height = _rand.Next(_minSize, maxHeight/2);

	return new Rectangle(pos, new Size(width, height));
}

绘制Flash背景

在绘制Flash背景前,使用C1FlashCanvas的Clear方法清除canvas里的所有内容。

然后使用C1FlashCavas的Fill方法绘制背景。它可以绘制矩形、椭圆、扇形等背景,可以参考C1FlashCanvas下的FillPie,FillEllipse,FillRectangle等方法。在本文Demo中有详细的代码说明各种图形的画法,下面就用Rectangle举例说明如何绘制背景。

用代码随机生成一个SolidBrush,参考下面代码中的RandomColor方法,然后通过C1FlashCanvas的FillRectangle方法在canvas里绘制这个Rectangle背景。代码中的RandomRectangle方法在上一段代码中有定义。

SolidBrush brush = new SolidBrush(Color.Black);
for(int i = 0; i < 20; i++)
{
	brush.Color = RandomColor();
	this.c1FlashCanvas1.FillRectangle(brush, RandomRectangle());
}
brush.Dispose();

private Random _rand = new Random();
private Color RandomColor()
{
return Color.FromArgb(_rand.Next(255), _rand.Next(255), _rand.Next(255), _rand.Next(255));
}

生成SWF文件

使用C1FlashCanvas的RenderToFile方法可以将Flash内容绘制到SWF文件。代码如下所示:

this.c1FlashCanvas1.RenderToFile(tempdir + @"\c1flash_canvas_bubbles.swf");

最后使用System.Diagnostics.Process.Start方法打开文件。

用Draw方法画出的图形如下所示:

Flash-draw

用Fill方法画出的图形如下所示:

Flash-Fill

 

本文Demo的源代码如下:

Canvas_Bubbles.7z (254.36 kb)

ComponentOne Enterprise | 下载试用

ComponentOne 是一套专注于企业 .NET开发、支持 .NET Core 平台,并完美集成于 Visual Studio 的第三方控件集,包含 300 多种 .NET开发控件,提供表格数据管理、数据可视化、报表和文档、日程安排、输入和编辑、导航和布局、系统提升工具等七大功能,被誉为“.NET开发的‘瑞士军刀’”。

ComponentOne 为您提供专业的产品咨询服务,并由技术支持工程师为您1对1解答。>> 发帖提问

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态