-- 作者: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] 上一篇 返回上一页 回到目录 回到页首 下一篇
|