源代码下载:http://www.shareidea.net/opensource.htm
在线演示:http://www.shareidea.net/workflow.htm
视频教程: http://www.shareidea.net/video/sharedesigner/sharedesigner.html
在上篇文章中,韦恩卑鄙提出了silverlight3.0版本中增加了本地动态生成图片的方法,我又搜索了一下,的确可以了,您可以访问http://developer.51cto.com/art/200903/115552.htm查看详细信息,特此感谢韦恩卑鄙。
上文已经搭建除了一个生成图片的框架,但是还没有完成具体的代码,本章将继续上一章的内容。本章内容很简单,如果您不想往下继续看了,请下载源代码看一下实际效果吧。
九、动态生成流程图片
9.4 生成图片
为了动态生成图片,我们需要使用到两个主要的类:
l Bitmap:是用于处理由像素数据定义的图像的对象,它封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。
l Graphics:它封装一个 GDI+ 绘图图面。我们主要使用这个提供的各种方法来绘制矩形,椭圆,直线,文字等。
根据上节的内容,我们需要根据从客户端传递过来的工作流xml描述文件生成一个对应的图片,这个xml文件具体描述了工作流的图形属性,包括容器图形,活动图形和规则图形。对应的,我们也需要设计三个类,分别表示容器,活动和规则的图形,然后分析xml文件,创建一个容器,并且根据xml文件创建相应的规则和活动。
9.4.1 容器类
容器类比较简单,包含四个属性:
l Width:容器宽。
l Height:容器高。
l RulePictureCollection:规则集合。
l ActivityPictureCollection:活动集合。