使用silverlight构建一个工作流设计器(十四)(动态生成流程图片下载_下)

源代码下载: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:活动集合。

时间: 2025-01-07 19:22:07

使用silverlight构建一个工作流设计器(十四)(动态生成流程图片下载_下)的相关文章

使用silverlight构建一个工作流设计器(十八)-持久化数据到数据库

使用silverlight构建一个工作流设计器(十八)-持久化数据到数据库-服务器段功能实现 17.3 服务器端代码实现 服务器端的功能是将数据保存到数据库,以及从数据库中取出xml描述文件返回给客户端.本文使用LINQ to SqClasses的方法对数据库进行操作.如下图所示,增加一个linq的类 然后在左边的数据库链接管理器中,增加一个数据库链接,如下图所示:

使用silverlight构建一个工作流设计器(十六)-持久化数据到数据库—数据库结构

16.1 数据结构 目前的流程信息没有保存到任何一个可持久化的环境中,根据网友建议,增加存储工作流xml文件的功能.这个功能使用数据库来实现,您也可以有更多的持久化方式. 根据工作流引擎的实现不同,有些引擎只需要xml文件配置就可以了,有些引擎需要建立数据库的模型.在本文中,假设工作流引擎是跟数据库相关的. 整个持久化流程是这样的: 从使用webservices从服务器下载相应的流程xml描述(或者新建一个流程) 在客户端使用流程设计器进行流程设计或者修改,此时任何修改都在本地完成 在用户点击保

使用silverlight构建一个工作流设计器(十二)

源代码下载:http://www.shareidea.net/opensource.htm 在线演示:http://www.shareidea.net/workflow.htm 视频教程: http://www.shareidea.net/video/sharedesigner/sharedesigner.html 本章包含以下内容: l 新的活动图形,图形更加清晰漂亮. l 增加对上下左右键的支持(选中活动或者规则后,使用方向键进行移动,按住Ctrl时,每次移动的距离加大).不过有一个问题,无

使用silverlight构建一个工作流设计器(十五)(缩放流程图)

当流程过于复杂,流程环节过多时,在一个屏幕中不能完全显示整个流程图,需要拖拽滚动条来显示.这对于了解整个流程的概况有些不便,联想到一些看图软件的缩放功能,如果可以给流程增加缩放,那么就可以很好的解决流程图过于复杂而不便查看的问题了. 十.增加流程图缩放功能 流程缩放要考虑活动和规则的缩放,对于活动和规则,他们的缩放方式稍有不同. 对于活动,缩放会影响两个地方,一个是活动的位置,也就是相对于容器的Top和Left属性.另一个是活动本身的图形的大小. 对于规则,缩放只会影响到规则的位置.如果规则关联

使用silverlight构建一个工作流设计器(十)

源代码下载:http://www.shareidea.net/opensource.htm 在线演示:http://www.shareidea.net/workflow.htm 视频教程: http://www.shareidea.net/video/sharedesigner/sharedesigner.htm 六 增强的用户体验功能 6.6 增加动画效果 上一章我们给菜单增加了动画效果,这一章里面我们继续增加动画效果,包括: 新增活动的淡入效果 删除活动的淡出效果 新增规则的淡入效果 删除规

使用silverlight构建一个工作流设计器(十九)-规则与活动的交点的平滑移动

19.1 规则和活动交点的平滑移动 在之前的版本中,规则和活动的关联,如果活动图形是矩形或者菱形,那么系统只定义了4个关联点,分别在上下左右,如下图所示: 这样的关联设定也可以用,但还不是很完美,经过改进,现在实现为两个活动的中间连线与活动的相交点.如果拖动活动或者规则,那么这个交点就会平滑的移动,不会像之前那样在4个点之间跳动了,如下图所示: 这个功能的实现不复杂,主要是分析好各种关系就可以了.下面以矩形图活动为例,具体描述一下相应的思路和代码.如下图所示:

使用silverlight构建一个工作流设计器(十七)-持久化数据到数据库

使用silverlight构建一个工作流设计器(十七)-持久化数据到数据库-设计webservices接口 在开始之间,先说下程序增加的一个小功能,就是给容器增加网格线的功能,使得容器看上去类似下面的样子 当然可以有两种方法来实现,一种就是使用背景图片,但本文一贯的原色就是少用图片,多用silverlight的画图功能来实现,这些网格都可以使用xaml中的Line对象来实现.为此我们需要动态设定一个Canvas,然后把这些动态生成的Line对象添加到Canvas中,最后再把Canvas添加到容器

使用silverlight构建一个工作流设计器(十三)(动态生成流程图片下载_上)

首先庆祝一下源代码在codeplex上下载量超过1000 另外本演示程序放在微软免费的silverlight host上面,您也可以申请免费的空间. 地址在http://silverlight.live.com/ 源代码下载:http://www.shareidea.net/opensource.htm 在线演示:http://www.shareidea.net/workflow.htm 视频教程: http://www.shareidea.net/video/sharedesigner/sha

使用silverlight构建一个工作流设计器(三)

本文配套源码 最新版本在线演示:http://219.153.66.61/wf 新功能调查:系统到这里已经具备一个设计器的雏形了,当然还有很多需要完善的功能,如果您在这方面有经验,请提出您的宝贵意见,也可以留下您想要实现的功能,在后续版本中,我们将考虑您的意见,非常感谢:) 本文继续前文的内容,主要讲述与导入xm,导出xm,xml存储有关的一些内容.包含以下部分: 设计一个流程图的xml描述文件 将流程图导出为xm 根据xml文件呈现流程图 在完成以上内容后,进一步深入思考,既然可以将流程的当前