程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 使用silverlight構建一個工作流設計器(八)

使用silverlight構建一個工作流設計器(八)

編輯:關於ASP.NET

源代碼下載:http://www.shareidea.net/opensource.htm

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

視頻教程: http://www.shareidea.net/video/sharedesigner/sharedesigner.htm

本文源地址:http://www.cnblogs.com/chegan/archive/2009/05/04/1448515.htm

從這一版本開始,本程序正是命名為 ShareDesiner.S

本章主要是增強用戶體驗功能,包括:1、支持對象多選(包括鼠標和鍵盤兩種方式,類似windows中選擇多個文件的方式)。2、支持選中的對象群組移動。3、支持選中的對象拷貝和粘貼(活動和規則)。4、支持更多鍵盤操作Ctr+A(全選),Ctr+C(拷貝),Ctr+V(粘貼),Ctr+Z(回退),Delete(刪除)。5、更多右鍵菜單。如果您沒有耐心繼續往下看了,請看上面的視頻教程吧。

六 增強的用戶體驗功能

6.1 支持選擇多個對象

對於選擇多個對象,我們可以參考windows中選擇多個文件的方式。包括兩種方式:

按住Ctrl鍵,然後用鼠標一次點擊選擇的文件,被選中的文件以不同的顏色顯示。

按下鼠標左鍵,然後拖動鼠標,在屏幕上畫出一個矩形,處在矩形中的文件被選中,同時以不同的顏色顯示。

我們給活動和規則增加一個屬性 IsSelectd,表示對象是否被選中。如果被選中,那麼背景顏色使用區別於沒有選中的對象顏色。如下圖所示:

同時,在容器類中增加一個屬性CurrentSelectedControlCollection,用以存儲當前被選中的對象集合。

對於第一種方法,在對象的MouseLeftButtonDown中編寫代碼,設置對象的IsSelected=!IsSelected,同時將對象加入到容器的CurrentSelectedControlCollection集合中。

對於第二種方法,首先需要根據鼠標在容器內的拖拽動作畫出相應的矩形,當鼠標松開時,遍歷當前所有容器中的對象,檢查對象是否在鼠標畫出的矩形區域內,如果在,那麼設置對象的IsSelected=true,並將對象添加到容器的屬性CurrentSelectedControlCollection中即可。如下圖所示:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved