DotNet(C#)自定義控件之界面編程(一)

寫在前面:在填充一個區域的顏色,就少不了Brush,微軟MSDN對Brush的解釋是:GDI+ Brush 對象用於填充閉合形狀的內部。GDI+ 定義多種填充樣式:純色、陰影圖案、圖像紋理和顏色漸變。也就是在Fill的方法中使用到的,而因爲填充的Brush可以是單色或多色,這使到控件十分美觀,特別是LinearGradientBrush的使用使控件增色不少。它是一個過渡色的意思。

純色(單色)填充形狀
SolidBrush是由一個單一的顏色組成的形狀顏色填充,再設置一個畫的區域,如一個正方形或圓形就可以了
     

   protected override void OnPaint(PaintEventArgs e)
        
{
            
base.OnPaint(e);
            Graphics g 
= e.Graphics;
            g.FillRectangle(
new SolidBrush(Color.Blue), 
                
new Rectangle(0,0,this.Width-1,this.Height-1)
                );
        }

 

以上代碼,你只要隨便新建一個用戶控件,然後在Class中增加就可以,編譯後,新建一個Form,打開工具箱,就會自動增加一個控件,默認情況下,這個控件是UserControl1,顯示的效果是
 

陰影圖案填充形狀
使用陰影圖案填充形狀,有兩個顏色的參數,一個是填充區域的背景色,而另一個是在背景上再畫一系列線條.
 

protected override void OnPaint(PaintEventArgs e)
        
{
            
base.OnPaint(e);
            Graphics g 
= e.Graphics;
            HatchBrush hBrush 
= new HatchBrush(
               HatchStyle.Horizontal,
               Color.Red,
               Color.FromArgb(
255128255255));
            g.FillEllipse(hBrush, 
0010060);
        }

 

這個HatchBrush 是命令空間System.Drawing.Drawing2D的類。

漸變色填充
LinearGradientBrush的使用
這是命令空間System.Drawing.Drawing2D的類
下面的代碼是畫一個有漸變色的橢圓。
    

    protected override void OnPaint(PaintEventArgs e)
        
{
            
base.OnPaint(e);
            Graphics g 
= e.Graphics;
            LinearGradientBrush lBrush 
= new LinearGradientBrush(
               ClientRectangle,
               Color.White,
               Color.Red, LinearGradientMode.Vertical);
            g.FillEllipse(lBrush, 
0010060);
        }

 

效果圖如下
 
LinearGradientBrush能夠提供漸變色的效果,而且操作很簡單,所以經常被使用,LinearGradientMode是漸變的方向,如垂直,水平,傾斜等等。

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