使用silverlight构建一个工作流设计器(八)
2009-05-05 12:06:33 来源:WEB开发网对于第一种方法,在对象的MouseLeftButtonDown中编写代码,设置对象的IsSelected=!IsSelected,同时将对象加入到容器的CurrentSelectedControlCollection集合中。
对于第二种方法,首先需要根据鼠标在容器内的拖拽动作画出相应的矩形,当鼠标松开时,遍历当前所有容器中的对象,检查对象是否在鼠标画出的矩形区域内,如果在,那么设置对象的IsSelected=true,并将对象添加到容器的属性CurrentSelectedControlCollection中即可。如下图所示:
6.2 支持多个选择对象的群组移动
在前面的内容中,我们使用鼠标拖动一个对象在容器中移动,这个动作只限于一个对象(一个活动,或者一个规则),当用户选择多个对象的时候,希望对这个多个对象进行同步的移动处理。
我们可以在前面代码的基础上进行扩展,对于一个对象,我们的代码已经支持了移动处理,如果有多个对象被选中,我们在移动其中一个对象时,需要计算出当前移动的位移(x,y座标),并把这个位移参数传递给容器对象,在容器对象中根据6.1中的内容,遍历当前选中的对象,根据位移参数重新设置对象的位移即可。
6.3对象的拷贝和粘贴
单个对象支持被拷贝和粘贴,选中的群组对象也支持拷贝和粘贴。
6.3.1对象拷贝
对象靠别类似于windows系统中的拷贝文件,对于windows中的拷贝文件,我们得到了一个完全相同于源文件的备份。对于我们的系统来说,对象包括规则和活动,这两种对象支持拷贝,为了支持拷贝,我们需要给对象增加一个拷贝的方法。这个方法放置在相应对象的类中,就叫做Clone().在这个方法中,首先New了一个新的活动或者规则类,并把当前对象有关的数据和位置信息复制给我们新创建的对象,这样就得到了一个对象的拷贝。
Tags:使用 silverlight 构建
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接