浅谈C#中的绘图!

给自己流失的岁月作个记号!

C#中的绘图,自己感觉还是比较人性化的,下面就一点一点说一下C#中的绘图

1>     首先,要邀请一名画家来画画,暂且就叫小g为齐白石吧

Graphics g;

2>     第二步要告诉齐白石在哪里画,C#中画的地方很多,可以在Form窗口中画,Panel面板中画,PictureBox图片框中画,Image中画;

a)         如果在Form窗口中画,那就告诉齐白石吧,g=Form.CreateGraphics(画笔是由窗体创造的,专属画笔,不在Form中画在哪里画);

b)        如果在Panel面板中画,则把Panel控件拖到Form,然后告诉齐白石, g=Panel.CreateGraphics(同样的专属画笔).

c)        如果画笔在Image中画,由于没有Image控件拖到Form,首先要生成一张Image (Image img = new Bitmap (Width, Height)),然后告诉齐白石g=Graphics.FromImage(img),记得最后返回Image(return img),(其他两个是在比赛场地直接画画,所以画完之后自动就被收走了,而你是在家画画,画完之后当然要自己上交了.)

3>      然后就是画画喽(最后再讲):

4>     画完之后要交成果了,如果在Form中和托放在Form中的Panel上画,则运行之后可以直接看到齐白石的作品,如果是画在了Image,则必须找个东西装起来再展示(这样可以挂墙上啊,相框装相片,图片框当然就是装图片啦.),我们在这里让图片框PictureBox去装图片Image.(PictureBox不装Image,它装什么啊,^_^) PictureBox.Image=img(上交上来的画);但是也不要忘记把PictureBox提前托放在Form窗体上(提前挂在墙上,留一个夹Image的夹子就行了,这样就可以展示多人的不同时间的作品.经常去取下,重新挂容易毁坏墙壁,^_^),这样一运行(对外开放),齐白石在Image上画的作品就展示出来了.

5>     画画的步骤就这样结束了,但是也许有朋友会问,齐白石能画那些图形啊?怎么画啊?问的好,现在就来讲讲他能画什么?

a)         首先画画必不可少的工具是画笔Pen和画刷Brush(染色用);

                         i.              Pen pen = new Pen(Color.Black, 3)

                       ii.              Brush brush = new SolidBrush(Color.Red)  //典型的虚函数,画刷有孩子提供.

b)        能画什么?看看吧

                         i.              DrawLine(直線)

                       ii.              DrawRectangle(矩形)

                      iii.              DrawEllipse(橢圓)

                     iv.              DrawCurve(曲線)

                       v.              DarwArc(弧線)

                     vi.              DrawPie(扇形)

                    vii.              DrawLines(多邊形)

                  viii.              DrawPolygon(封閉多邊形)

                     ix.              DrawBezier(貝茲曲線)

                       x.              太多了,就列到这里吧!

c)        怎么画,看看csdn!而且VS在写代码的时候会提示你的.

6>     除了可利用上述CreateGraphics 方法取得繪圖物件來繪製圖形外, 亦可利用物件的Paint 事件來繪製圖形,也可以override, Paint 事件的語法如下:

private void 物件名稱_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

 Paint 事件來自Control 類別, 所以Control 類別的衍生類別皆可改寫此事件, 我們可利用上述語法中PaintEventArgs 類別的物件e 來取得繪圖物件繪製圖形。例如, 以下敘述可利用Paint 事件中的參數e 繪製一條直線。

       Pen drawPen = new Pen(Color.Black, 3);

       e.Graphics.DrawLine(drawPen, 10, 10, 300, 100);

n       其次, Paint 事件的執行時機如下:

n       1. 新建的視窗。

n       2. 視窗從隱藏還原為可視。

n       3. 視窗被改變大小。

n       4. 視窗被別的視窗遮蓋再移開。

 

你可能感兴趣的:(c,image,object,C#,工具,图形)