使用silverlight构建一个工作流设计器(四)2009-11-09 cnblogs chegan最新源代码下载:http://www.shareidea.net/opensource.htm最新版本在线演示:http://www.shareidea.net/workflow.htm按计划程序到这里就差不多结束了,但是有很多朋友希望能继续完善这个程序,并增加有关工作流属性的内容,应各位朋友要求,把这个系列继续下去,并增加流程属性的一些内容。工作流在现代企业中广泛应用,本文不强求完成一个大而全的流程应用,而是做一个框架类的东西,方便进行二次开发和扩展。大家从前面的内容可以看出,本文很少直接贴代码上来,而是主要侧重于创作一个应用程序过程中的遇到的问题以及解决问题的思路和方法(当然也包括使用silverlight遇到的问题)。并且说明解决一个问题的多个方法之间的取舍原因。当然这个原因不是绝对的,根据时间的推移和思路的延伸,我们还可以找到更加合适的解决问题的方法。在这个学习silverlight的过程中,希望和大家分享一下学习的心得,关于silverlight的,关于系统设计都有,只要使我觉得比较新鲜有趣的。也希望各位大虾,新手多多指点。五 美化需要美化的内容有很多,目前想到并且打算做的部分有以下几方面的内容:规则使用带箭头的直线活动根据不同的活动类型显示不同的形状。界面调整5.1 规则使用带箭头的直线在silverlight中的 Line类没有找设置箭头的属性,所以我们要自己做一个箭头放在规则的尾部,能想到的有两种方法:使用一个箭头的图片放在规则的尾部。自己编写一个表示箭头的类,并将这个类放在规则的尾部。对于这两种方法,都涉及到一个问题,就是根据规则在不同的位置,箭头的方向要随着规则的变化角度做一个改变,以适应规则的角度。第一种方法比较简单,但是使用图片一个是增加客户端下载内容的大小,还有不方便改变显示的颜色,每次改变颜色都要换新的图片,不方便。那么我们就自己写一个表示图片的类,方式在规则的尾部。这个类继承自System.Windows.Controls.Canvas,我们叫它 Arrowhead ,Arrowhead类包含两个子控件,分别是两个 Line(直线)类,这两个直线类按照不同的角度排列,就可以形成一个箭头,类似下面的图形:

把这个类放在规则类的尾部,就形成了一个带箭头的直线,如下所示:

这样用几个对象合成了一个带箭头的直线。