帶優美外觀的UserControl控件GroupBox

http://www.myfirm.cn/news/DotNetUserInterface/20080208095730391.html

 

寫在前面:如果大家覺得.Net自帶的GroupBox控件太差了,樣子很不美觀,而想用.Net強大的自定義功能來實現定製控件,如,在GroupBox的Title那裏加個Button形狀的東西,給GroupBox的四周的角都變成圓的,給GroupBox加個背景色,並且有過渡效果。那,請您看看,下面的效果圖,是不是您所需要的?就是不是你需要的,但是不是有很大的參考價值?應該是吧。
 

介紹此自定義控件的源網址是:http://www.codeproject.com/KB/miscctrl/grouper.aspx
代碼是用C#來寫的。在那裏,你可以下載到自定義控件的源碼,不過,請您尊重作者的原創。

設計剖析
新自定義一個UserControl,然後按GroupBox的樣子畫出控件。

佈局
不繼承GroupBox而直接新建一個UserControl控件,需要勇氣和技術,GroupBox有如下的部分:標題,也就是GroupBox左上角部分,在此控件中,被打包成一個Button的樣子,Button的四個角都是平滑而有弧度的,而且,可以放圖片,可以定義控件的固定位置,如UserControl的Left,Top設計好,然後開始畫這個Button,而Shadow也是通過畫橢圓弧來實現的,Button中的過渡色,可以通過LinearGradientBrush等類提供的方法來實現,Brush中提供了一,二和三維的顏色方案。
GroupBox的角,橢圓弧和Shadow也是這樣畫出來的,這需要編程者,有比較深厚的GUI經驗和耐心的調試。對於GroupBox的內部,使用UserControl默認的容器形式。
根據這樣的佈局,產生了多個屬性的設置,如源背景色,過渡後的背景色,Title的弧度,GroupBox的弧度等。

動作
.Net標準GroupBox本身自帶的動作並不是很多,這也是自定義控件在佈局做得很強的原因,因爲根本不用寫動作的。一般只會有Resize的動作,這樣,要激發重畫的動作。而整個自定義控件設計的畫路也是比較的簡單的,在OnPaint方法上面做了所有的動作。包括畫GroupBox和Button等內容。

發佈了44 篇原創文章 · 獲贊 8 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章