以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Dot NET,C#,ASP,VB 』  (http://bbs.xml.org.cn/list.asp?boardid=43)
----  C#快餐-15  (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=11729)


--  作者:admin
--  发布时间:11/9/2004 2:25:00 AM

--  C#快餐-15


发信人: nice (春天), 信区: DotNET        
标  题: C#快餐-15
发信站: BBS 水木清华站 (Thu Jul 26 02:19:23 2001)

Lesson 15. Drawing with Pen and Brush.


  In this lesson I would like to introduce the Pen  and the Brush objects. The
following code draws a blue line intersecting a red ellipse. The code is pretty
straightforward, once you override the OnPaint member of Form class. An
instance of Graphics object g is then created. The area of the form where the  
drawing takes place is designated. This area is called ClientRectangle and by  
default is the whole area of the Form. The rest of the program is fairly easy.
I specify two points the ClientRectangle between which I draw a line.
Note that I have also created a pen to  draw this line in blue. To draw an
ellipse, an invisible rectangle needs to be specified in the ClientRectangle.
Then the ellipse is inscribed inside this rectangle. To change the shape and  
the position of ellipse you will need to change the shape and the position of  
the rectangle in which it is inscribed.


class Test:System.WinForms.Form
{
    //in order to paint something OnPaint method needs to be overridden
    protected override void OnPaint(System.WinForms.PaintEventArgs pe)
    {
    //OnPaint method is a member of Form class
    //The following call sends pe to an event listener Graphics
    base.OnPaint(pe);
    //initialize Graphics
    System.Drawing.Graphics g=pe.Graphics;
    //designate the area of the form where the drawing must take place
    //ClientRectangle is a member of WinForms.Control class
    System.Drawing.Rectangle client_area=this.ClientRectangle;
    //point11 is at the top left corner of the client_area
    System.Drawing.Point point11=new System.Drawing.Point(client_area.X,clie
nt_area.Y);
    //point12 is at the bottom right corner of the client area
    System.Drawing.Point point12=new System.Drawing.Point(client_area.Width,
client_area.Height);
    //create a Brush object of white color
    //SolidBrush means that the color does not change from point to point
    System.Drawing.Brush background=new System.Drawing.SolidBrush(System.Dra
wing.Color.White);
    //color client_area with solid white brush
    g.FillRectangle(background,client_area);
    //make red and blue pens
    System.Drawing.Pen p=new System.Drawing.Pen(System.Drawing.Color.Red);
    System.Drawing.Pen p1=new System.Drawing.Pen(System.Drawing.Color.Blue);

    //create points and rectangles
    System.Drawing.SizeF size=new System.Drawing.SizeF();
    size.Height=160;
    size. Width=180;
    System.Drawing.PointF point=new System.Drawing.PointF();
    point.X=8;
    point.Y=40;
    System.Drawing.Point point1=new System.Drawing.Point();
    point1.X=300;
    point1.Y=300;
    System.Drawing.Point point2=new System.Drawing.Point();
    point2.X=0;
    point2.Y=0;
    System.Drawing.RectangleF rec =new System.Drawing.RectangleF(point,size)
;
    //draw an ellipse inscribed in the invisible rectangle rec
    //to change the size or shape of the ellipse change an invisible rectang
le in which it is inscribed
    //to change the color of the ellipse, change the color of the pen p whic
h is used to draw it
    g.DrawEllipse(p,rec);
    //draw a line between a pair of points point1 and point2 with pen p1
    g.DrawLine(p1,point1,point2);
    }
    public static void Main()
    {
    System.WinForms.Application.Run(new Test());//display form
    }
}

There are many other very interesting figures and shapes you could draw with
Pen and Brush. It is a lot of fun! Write to me if you would like to share your
work or your ideas with other readers. Good Luck!

--

※ 修改:·walts 於 Jul 26 10:33:34 修改本文·[FROM: 166.111.142.118]
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.176.234]
上一篇
返回上一页
回到目录
回到页首
下一篇



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
39.063ms