像Java一樣,C#提供了一整套相當豐富的類庫、方法以及事件以供開發者使用。C#還引入了GDI+,它是由GDI演變而來的,具有比GDI更強大的功能而且簡化了程序員的編程工作。所以開發者運用這些,就可以很方便的開發出具有強大圖形圖像功能的應用程序了。本文,筆者就通過一些實例像讀者介紹一下C#中的圖形編程的基本知識。
簡單實例:
首先,讓我們從例子開始,以下是一個最簡單的實例:
using System; using System.Windows.Forms; using System.Drawing; public class Hello:Form { public Hello() { this.Paint += new PaintEventHandler(f1_paint); } private void f1_paint(object sender,PaintEventArgs e) { Graphics g = e.Graphics; g.DrawString("你好,C#!",new Font("Verdana",20), new SolidBrush(Color.Tomato),40,40); g.DrawRectangle(new Pen(Color.Pink,3),20,20,150,100); } public static void Main() { Application.Run(new Hello()); } }
在上面的實例中,我們用到了一個方法:DrawString(),它帶有5個參數。同時,我們發現在運用DrawString()方法以前,我們先創建了一個Graphics類型的對象g=e.Graphics,這就說明了在運用任何圖形類的方法以前我們必須先創建該類的一個實例化對象。在DrawString()方法後,我們用到了DrawRectangle()方法,其實我們還可以運用其他的方法來畫橢圓或是多邊形等等。第一個實例還是相當簡單易懂的,不是嗎?
變換圖形的度量單位:
在圖形編程中,默認的圖形度量單位是象素。不過,你可以通過修改PageUnit屬性來修改圖形的度量單位,可以是英寸或是毫米等。實現方法如下:
Graphics g = e.Graphics; g.PageUnit = GraphicsUnit.Inch
操作顏色選擇對話框:
在實際運用特別是圖形圖像編程過程中,我們可能會經常碰到顏色選擇對話框(以及下面要提到的字體選擇對話框)。使用顏色選擇對話框,我們可以讓用戶來選擇系統預定的顏色以及用戶自定義的顏色。在使用顏色選擇對話框之前,我們必須先創建一個ColorDialog類型的對象:
ColorDialog cd = new ColorDialog();
然後,我們就可以用ShowDialog()方法來顯示顏色選擇對話框了。之後,就可以通過調用用戶的顏色選擇進行相關的圖形操作了。
以下,我給大家一個實例。該實例中有一個按鈕和一個文本框,通過點擊按鈕可以調出顏色選擇對話框,根據用戶的顏色選擇就可以設置文本框的背景顏色了。
using System; using System.Drawing; using System.Windows.Forms; public class Clr:Form{ Button b1 = new Button(); TextBox tb = new TextBox(); ColorDialog clg = new ColorDialog(); public Clr(){ b1.Click += new EventHandler(b1_click); b1.Text = "選擇顏色"; tb.Location = new Point(50,50); this.Controls.Add(b1); this.Controls.Add(tb); } public void b1_click(object sender, EventArgs e){ clg.ShowDialog(); tb.BackColor = clg.Color; } public static void Main() { Application.Run(new Clr()); } }
操作字體選擇對話框:
字體是圖形編程的一個重要組成部分,通過設置不同的字體,你可以在程序中達到不同的視覺效果。和以上的顏色選擇對話框的創建差不多,你可以很方便地創建一個字體選擇對話框,並通過它來讓用戶選擇其所需的字體。
下面同樣給出一個實例,這個實例和上面的實例差不多,只是用來字體選擇對話框代替了原來的顏色選擇對話框,最後是根據用戶的字體選擇來設置文本框的字體。
using System; using System.Drawing; using System.Windows.Forms; public class Fonts:Form { Button b1 = new Button(); TextBox tb = new TextBox(); FontDialog flg = new FontDialog(); public Fonts() { b1.Click += new EventHandler(b1_click); b1.Text = "選擇字體"; tb.Location = new Point(50,50); this.Controls.Add(b1); this.Controls.Add(tb); } public void b1_click(object sender, EventArgs e) { clg.ShowDialog(); tb.FontName = flg.Font; } public static void Main() { Application.Run(new Fonts()); } }
使用System.Drawing.Drawing2D名字空間: