[讀書筆記] Stephens' C# Programming with Visual Studio 2010 24-Hour Trainer 第三十九章

  • 2872
  • 0

閱讀Stephens' C#教材第三十九章筆記 介紹介紹C#的繪圖類別:Graphics, Pen及Brush。

 

Chapter 39 Drawing with GDI+
 
本章將介紹C#基本的繪圖程式撰寫,透過Graphics, Pen及Brush類別操作在程式中畫圖。
 
Graphic類別就像是程式裡的一個畫布,你可以將記憶體中的Bitmap圖,螢幕上的控制項畫面或是列印頁的資料都畫上去。詳細的資料請參考微軟網頁
 
常見的 Draw方法有:DrawArc, DrawBezier, DrawBeziers, DrawClosedCurve, DrawCurve, DrawEllipse, DrawImage, DrawLine, DrawLines, DrawPie, DrawPolygon, DrawRectangle, DrawRectangles, DrawString
常見的 Fill方法有:FillClosedCurve, FillEllipse, FillPie, FillPolygon, FillRectangle, FillRectangles
 
所有的Fill方法都需要帶入Brush參數,例如下列的程式會在座標(10,20)的位置畫一個黃色色塊,長度200像素, 寬度100像素
 
            e.Graphics.FillRectangle(Brushes.Yellow, 10, 20, 200, 100);
 
大多數的Draw方法則會帶入Pen參數,例如下列的程式會在座標(10,20)的位置畫一個藍色線框,長度200像素, 寬度100像素
 
            e.Graphics.DrawRectangle(Pens.Blue, 10, 20, 200, 100);
 
DrawString方法則跟上面不同,它會帶入Brush參數代替Pen。
而DrawImage則更不會使用到Brush及Pen作為它的參數。
 
DrawShapes程式示範使用上述FillRectangle ,DrawRectangle及其他FillEllipse, DrawEllipse, FillPolygon與DrawPolygon方法的程式碼。
 
Graphic類別提供三個與顯示品質有關的屬性:
  • SmoothingMode:決定線條與形狀在畫製時的品質。
  • TextRenderingHint:決定文字在畫製時的品質。
  • InterpolationMode:決定影像在放大或縮小時的平滑品質。
 
Smoothness程式示範使用上述屬性的效果
 
 
Pen類別提供繪製直線或曲線的功能,重要的屬性有:Brush, Color, CompoundArray, CustomEndCap, CustomeStartCap, DashCap, DashOffset, DashPattern, DashStyle, EndCap, LineJoin, StartCap, Width。詳細的資料請參考微軟網頁
 
UsePens程式示範使用上述屬性畫線的結果
 
Brush類別提供填滿圖形形狀內部的物件,例如矩形、橢圓形、派形、多邊形和路徑。詳細的資料請參考微軟網頁
 
Brush類別還有許多變形類別,例如
  • HatchBrush:使用規劃樣式、前景色彩和背景色彩來定義矩形筆刷。請參考微軟網頁
  • LinearGradientBrush:使用線形漸層繪製區域。請參考微軟網頁
  • PathGradientBrush:使用漸層來填滿 GraphicsPath 物件的內部。請參考微軟網頁
  • SolidBrush:定義單一色彩的筆刷。 筆刷是用來填滿圖形形狀,例如矩形、橢圓形、派形、多邊形和路徑。請參考微軟網頁
  • TextureBrush:使用影像來填滿形狀的內部。請參考微軟網頁
 
UseBrush程式示範使用上述類別的畫圖效果
 
 
TRY IT中示範如何使用Graphic類別做出畫面中的程式。。