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