共用方式為


如何:建立繪製的圖形物件

您必須先建立 Graphics 物件,才能使用 GDI+ 繪製線條和圖形、呈現文字或顯示及操作影像。 Graphics 物件代表 GDI+ 繪圖表面,而且是用來建立圖形影像的物件。

使用圖形有兩個步驟:

  1. 建立 Graphics 物件。

  2. 使用 Graphics 物件繪製線條和圖形、轉譯文字或顯示及操作影像。

建立圖形物件

圖形物件可以透過各種方式建立。

建立圖形物件

  • 在表單或控制項的 Paint 事件中,接收圖形物件的參考,作為 PaintEventArgs 的一部分。 這通常是您在為控制項建立繪製程式碼時,取得圖形物件參考的方式。 同樣地,您也可以在處理 PrintDocumentPrintPage 事件時,取得圖形物件作為 PrintPageEventArgs 的屬性。

    -或-

  • 呼叫控制項或表單的 CreateGraphics 方法,以取得代表該控制項或表單繪圖表面的 Graphics 物件的參考。 如果您想要在已經存在的表單或控制項上繪製,請使用此方法。

    -或-

  • 從繼承自 Image 的任何物件建立 Graphics物件。 當您想要改變已經存在的影像時,這個方法很有用。

    下列各節提供每個程式的詳細資料。

Paint 事件處理常式中的 PaintEventArgs

針對控制項的 PaintEventHandlerPrintDocumentPrintPage 進行程式設計,會提供圖形物件作為 PaintEventArgsPrintPageEventArgs 的其中一個屬性。

若要從 Paint 事件中的 PaintEventArgs 取得 Graphics 物件的參考

  1. 宣告 Graphics 物件。

  2. 指派變數,以參考傳遞為 PaintEventArgs 一部分的 Graphics 物件。

  3. 插入程式碼以繪製表單或控制項。

    下列範例示範如何從 Paint 事件中的 PaintEventArgs 參考 Graphics 物件:

    Private Sub Form1_Paint(sender As Object, pe As PaintEventArgs) Handles _  
       MyBase.Paint  
       ' Declares the Graphics object and sets it to the Graphics object  
       ' supplied in the PaintEventArgs.  
       Dim g As Graphics = pe.Graphics  
       ' Insert code to paint the form here.  
    End Sub  
    
    private void Form1_Paint(object sender,
       System.Windows.Forms.PaintEventArgs pe)
    {  
       // Declares the Graphics object and sets it to the Graphics object  
       // supplied in the PaintEventArgs.  
       Graphics g = pe.Graphics;  
       // Insert code to paint the form here.  
    }  
    
    private:  
       void Form1_Paint(System::Object ^ sender,  
          System::Windows::Forms::PaintEventArgs ^ pe)  
       {  
          // Declares the Graphics object and sets it to the Graphics object  
          // supplied in the PaintEventArgs.  
          Graphics ^ g = pe->Graphics;  
          // Insert code to paint the form here.  
       }  
    

CreateGraphics 方法

您也可以使用控制項或表單的 CreateGraphics 方法,取得代表該控制項或表單繪圖介面之 Graphics 物件的參考。

使用 CreateGraphics 方法建立 Graphics 物件

  • 呼叫您要呈現圖形的表單或控制項的 CreateGraphics 方法。

    Dim g as Graphics  
    ' Sets g to a Graphics object representing the drawing surface of the  
    ' control or form g is a member of.  
    g = Me.CreateGraphics  
    
    Graphics g;  
    // Sets g to a graphics object representing the drawing surface of the  
    // control or form g is a member of.  
    g = this.CreateGraphics();  
    
    Graphics ^ g;  
    // Sets g to a graphics object representing the drawing surface of the  
    // control or form g is a member of.  
    g = this->CreateGraphics();  
    

從 Image 物件建立

此外,您可以從衍生自 Image 類別的任何物件建立圖形物件。

從 Image 建立 Graphics 物件

  • 呼叫 Graphics.FromImage 方法,並提供您要建立 Graphics 物件之 Image 變數的名稱。

    下列範例示範如何使用 Bitmap 物件:

    Dim myBitmap as New Bitmap("C:\Documents and Settings\Joe\Pics\myPic.bmp")  
    Dim g as Graphics = Graphics.FromImage(myBitmap)  
    
    Bitmap myBitmap = new Bitmap(@"C:\Documents and
       Settings\Joe\Pics\myPic.bmp");  
    Graphics g = Graphics.FromImage(myBitmap);  
    
    Bitmap ^ myBitmap = gcnew  
       Bitmap("D:\\Documents and Settings\\Joe\\Pics\\myPic.bmp");  
    Graphics ^ g = Graphics::FromImage(myBitmap);  
    

注意

您只能從非索引 .bmp 檔案建立 Graphics 物件,例如 16 位、24 位和 32 位 .bmp 檔案。 非索引.bmp 檔案的每個像素都會保留色彩,與索引 .bmp 檔案像素相反,這些檔案會保存色彩資料表的索引。

繪製和操作圖形和影像

建立之後,Graphics 物件可用來繪製線條和圖形、呈現文字或顯示及操作影像。 與 Graphics 物件搭配使用的主體物件如下:

  • Pen 類別 — 用於繪製線條、大綱圖形,或呈現其他幾何表示。

  • Brush 類別 — 用於填滿圖形的區域,例如填滿圖形、影像或文字。

  • Font 類別 — 提供呈現文字時要使用的圖形描述。

  • Color 結構 — 代表要顯示的不同色彩。

若要使用您已建立的 Graphics 物件

另請參閱