VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > C#编程 >
  • c#教程之Graphics类

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/

5.1      Graphics类

System.Drawing.Graphics类对GDI+进行了封装,Graphics类提供一些方法完成各种图形的绘制。Graphics类对象与特定的设备关联,为了在不同的设备上用完全相同的代码完成同样的图形,应根据不同的设备建立不同的Graphics类对象。Graphics类是密封类,不能有派生类。

5.2.1使用Graphics类绘图的基本步骤

GDI+大部分功能被封装在Graphics类中,Graphics类提供了一些工具和函数,例如提供笔用来定义图形外轮廓线的颜色及粗细,提供刷子定义添充封闭图形内部的颜色和格式,提供不同输出字体,提供函数用来输出字符或绘制图形等等。为了在窗体中或其它控件中使用这些工具和函数绘图,必须首先得到这些窗体或控件的使用的Graphics类对象。下面的例子,在窗体中增加了一个按钮,单击按钮将在窗体中画一个边界为红色,内部填充蓝色的圆。该程序段说明了使用Graphics类绘图的基本步骤。按钮的单击事件处理函数如下:
private void button1_Click(object sender,System.EventArgs e)
{   Graphics g=this.CreateGraphics();//得到窗体使用的Graphics类对象
Pen pen1=new Pen(Color.Red);//创建红色笔对象
SolidBrush brush1=new SolidBrush(Color.Blue);//创建蓝色刷子对象
g.DrawEllipse(pen1,10,10,100,100);//用红色笔画圆的边界
g.FillEllipse(brush1,10,10,100,100);//用蓝色刷子填充圆的内部
}
运行后,单击按钮,出现边界为红色,内部填充为蓝色的圆。

5.2.2窗体的Paint事件

运行上例,单击按钮,出现边界为红色,内部填充蓝色的圆。最小化后,再最大化,图形不见了。这是因为用户Form窗体用户区内容可能被破坏,例如窗体最小化后,再最大化,菜单被打开再关闭,打开对话框再关闭等,用户区内容被覆盖。Windows并不保存被破坏的用户区内容,而是由应用程序自己恢复被破坏的用户区的内容。当应用程序窗口用户区内容被破坏后需恢复时,Windows操作系统向应用程序发送Paint事件,应用程序应把在窗口用户区输出数据的语句放在Paint事件处理函数中,Windows发Paint事件时,能调用这些在窗口用户区输出数据的语句恢复被破坏的内容。Form窗体不能自动响应Paint事件,程序员必须生成Paint事件处理函数。修改上例,增加Form窗体的Paint事件处理函数如下:
private void Form1_Paint(object sender,System.Windows.Forms.PaintEventArgs e)
{   Graphics g=e.Graphics;//得到窗体的使用的Graphics类对象
Pen pen1=new Pen(Color.Red);
SolidBrush brush1=new SolidBrush(Color.Blue);
g.DrawEllipse(pen1,10,10,100,100);
g.FillEllipse(brush1,10,10,100,100);
}
运行后,出现边界为红色,内部填充蓝色的圆。最小化后,再最大化,图形不消失。
相关教程