-
c#教程之Graphics类
本站最新发布 Python从入门到精通|Python基础教程
试听地址 https://www.xin3721.com/eschool/
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);//用蓝色刷子填充圆的内部
}
运行后,单击按钮,出现边界为红色,内部填充为蓝色的圆。
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);
}
运行后,出现边界为红色,内部填充蓝色的圆。最小化后,再最大化,图形不消失。
试听地址 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);
}
运行后,出现边界为红色,内部填充蓝色的圆。最小化后,再最大化,图形不消失。
最新更新
python中装饰器修复技术
python中filter、map、reduce的区别
python爬虫--cookie反爬处理
Python 模拟 Base64编码
证明task线程是来源于线程池的,线程重用
Python基础总结之第一天(新手可相互督促
Django:web认识,jinja2模块,如何安装Djang
tcp服务端无线为多个客户端服务
python自动化测试之DDT数据驱动
python输出九九乘法表
基于UDP的服务器端和客户端
再谈UDP和TCP
在socket编程中使用域名
网络数据传输时的大小端问题
socket编程实现文件传输功能
如何优雅地断开TCP连接?
图解TCP四次握手断开连接
详细分析TCP数据的传输过程
图解TCP数据报结构以及三次握手(非常详
TCP协议的粘包问题(数据的无边界性)
存储过程用法
MySQL教程之SQL ORDER BY 子句
MySQL教程之SQL AND & OR 运算符
MySQL教程之SQL WHERE 子句
MySQL教程之SQL SELECT DISTINCT 语句
MySQL教程之SQL SELECT 语句
MySQL教程之SQL语法
MySQL教程之SQL 简介
MySQL教程之MySQL之pymysql
MySQL教程之mysql设置不区分大小写