Welcome

首页 / 软件开发 / Silverlight / 使用silverlight构建一个工作流设计器(二十)-增加标签(上)

使用silverlight构建一个工作流设计器(二十)-增加标签(上)2009-11-20 博客园 chegan源代码下载:http://www.shareidea.net/opensource.htm

在线演示:http://www.shareidea.net/workflow.htm

视频教程: http://www.shareidea.net/video/sharedesigner/sharedesigner.html

今天把新增的标签功能说一下吧。

在规则中,为了对规则进行说明,可以给规则类增加一个TextBlack来对规则进行注释,之前的程序也是这么做的,如下图所示:

但是这样的注释有一个缺点,不能手动调整位置,而是只能根据规则的位置自动设置本文的位置,有时候这个自动设置的位置不是我们希望的位置。为了解决这个问题,我们对工作流的配置增加一个“标签”类,这个类是独立于规则之外的,专门用于对规则进行注释说明的类。另外,这个标签只是用于工作流图形的显示,并不涉及到流程属性,因为不需要做存储到数据库的方法,只保存在xml配置文件里面就可以了。

20.1 增加标签类

在vs.net中新建一个xaml文件,将文件名称修改为Label.xaml,这个类就是我们的标签类,这个类中有两个主要的内容,如下所示:

<UserControl x:Class="Shareidea.Web.UI.Control.Workflow.Designer.Label"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
MouseLeftButtonDown="UserControl_MouseLeftButtonDown"
MouseMove="UserControl_MouseMove"
MouseLeftButtonUp="UserControl_MouseLeftButtonUp"
MouseLeave="UserControl_MouseLeave"
Width="400" Height="20">
<Grid x:Name="LayoutRoot" Background="Transparent" >
<TextBlock Name="txtLabelName" ></TextBlock>
<TextBox Name="tbLabelName" TextChanged="TextBox_TextChanged" Visibility="Collapsed"></TextBox>
</Grid>
</UserControl>

其中,TextBlock用于显示标签名称,TextBox用以编辑标签名称。

这个类有以下几个重要的属性:

l 支持拖拽布局

l 支持导入、导出xml信息

l 支持修改标签名称

l 支持选择,群组移动

l 支持粘贴、拷贝

l 支持删除

l 支持鼠标右键菜单

本节将具体说明其中的几个。