介紹一個基于WinForm實(shí)現(xiàn)表單窗體設(shè)計(jì)器
WinForm表單窗體設(shè)計(jì)器的外觀如圖所示,WinForm表單窗體設(shè)計(jì)器的功能包括基本的移動,拖動虛線邊框和手柄調(diào)整尺寸,移動和調(diào)整尺寸過程中均可繪制對齊線,自動對齊,和Visual Studio效果一樣,支持畫框多選后同時操作多個對象.
類圖:
我用的WinForm表單窗體設(shè)計(jì)器的方法自己感覺還是比較挫的,并不復(fù)雜.
看這個對象,我將虛線邊框定義為TargetSizeLine,將手柄定義為TargetSizeDot,TargetSizeGroup的意思是邊框組,用來保存若干個手柄對象和邊框?qū)ο?一個邊框組中一般保存四個邊框?qū)ο?分別為四條邊。
TargetSizeDot對象通過一個枚舉,TargetDirection,來表示其所代表的方向,這在調(diào)整目標(biāo)對象的尺寸時使用.中間粉色的目標(biāo)對象,我是從UserControl繼承的,為UserControlTarget,它綁定一個TargetSizeGroup對象。
通過邊框調(diào)整目標(biāo)對象的尺寸是在邊框組對象中響應(yīng)的,在類圖上可以看到TargetSizeGroup里的事件:OnMouseDown,OnMouseMove,OnMouseUp。
拖動和調(diào)整尺寸只要響應(yīng)這幾個鼠標(biāo)事件即可。繪制對齊線和自動對齊其實(shí)也比較簡單,移動或調(diào)整對象尺寸時,和已有的其它對象對比,如果邊框距離相近,如5像素之內(nèi),就直接讓它靠到那條線上去,而畫線,就判斷如果邊框在同一條線上,就DrawLine。
【編輯推薦】