C#程序设计课件第12章_第1页
C#程序设计课件第12章_第2页
C#程序设计课件第12章_第3页
C#程序设计课件第12章_第4页
C#程序设计课件第12章_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第12章 GDI+简介,在绘图程序、表格处理程序、游戏程序、计算机辅助设计/计算机辅助制造技术以及其他许多类型的应用程序中,都需要开发人员编写图形代码,开发定制控件也需要编写图形代码;使用GDI+这个最新的类库,将能够使图形代码的编写比以前更加容易和高效,并且,能够开发出功能更加强大的图形处理软件。 GDI+是GDI(Graphics Device Interface,图形设备接口)的增强版本,它为Windows应用程序开发者提供了一组用于图形图像编程的类、结构和枚举。本章将向读者介绍如何使用GDI+向窗体、控件和打印机绘制图形图像,以及其他一些图形处理知识。 在本章内容的组织方面,采用了一个贯穿全章的解决方案,该解决方案综合利用了本章介绍的知识,在本章的行文过程中,一边介绍图形处理知识,一边利用所介绍的知识逐步实现该解决方案。,2,本章学习要点,了解GDI+ 了解Color结构 能够使用画笔绘制基本图形 能够使用常用的画刷进行区域填充 了解Font类并能够使用其绘制文本 向图形设备绘制图像 理解图形变换 打印图像 绘制图表,3,12.1 解决方案,本章的解决方案将能够演示如何向各种输出设备绘制图形,并演示怎样在窗体上操作图形;本章的解决方案中包含一个闪屏,在闪屏上将要绘制一些基本图形,如矩形、多边形、椭圆等,除此之外,还将绘制文本和图像;该解决方案还将能从一个顺序文件中读取数据,并将数据的特征与数据之间的关系用图表的形式表现出来。该方案很有实用性,而且它综合利用了本章中介绍的很多关于怎样使用GDI+绘图的知识以及本书中介绍的其他知识,例如,关于窗体、菜单和控件,关于操作文件,关于使用ArrayList等基本数据结构;与本解决方案类似的实验指导还需用到有关数据库的知识。,12.2 图形绘制概述,使用C#进行图形图像编程,是通过使用GDI+提供的一组类、结构和枚举进行的,其中的常用部分大多包含在System.Drawing命名空间和System.Drawing.Drawing2D命名空间中。Syetem.Drawing命名空间中的Graphics类封装了GDI+绘图面,并提供了将对象绘制到显示设备的方法。本节首先对GDI+进行简单介绍,然后介绍一些使用GDI+进行图形编程的基础知识。,4,12.2.1 了解GDI+,.NET Framework类库支持开发者完全地访问Windows GDI+。GDI+提供的服务大致可分为以下4种: GDI+提供了绘制简单图形和复杂图形的类。 GDI+允许开发者绘制各种字体的文本 GDI+允许开发者绘制位图和其他类型的图像。 GDI+提供图形变换功能 System.Drawing名称空间 System.Drawing.Drawing2D名称空间,5,12.2.2 Graphics类,Syetem.Drawing命名空间中的Graphics类是绘图操作的核心,它封装了GDI+绘图界面,有3种基本类型的绘图界面,分别是: Windows和屏幕上的控件 要发送给打印机的页面 内存中的位图和图像,6,12.2.2 Graphics类,在绘图时,常常使用Point、Size和Rectangle这3种结构指定坐标。下面对这三种结构进行介绍。 1Point结构 2Size结构 3Rectangle结构,7,12.3 画笔(Pen)与绘制基本图形,画笔用于绘制各种直线和曲线,在GDI+中,Pen类封装了画笔的功能。画笔具有线型、颜色和线宽等基本属性。其中,Width属性用来设置或获取线宽,DashStyle属性用来指定线型,它可以是Drawing2D:DashStyle枚举值(读者在使用时可参看msdn中的类库,不难看懂),Color属性用于获取或设置Pen对象的颜色。,8,12.4 画刷(Brush)与区域填充,绘制矩形、椭圆、扇形、多边形等需要使用画笔,要填充这些图形就需要使用画刷了。画刷是一种用来填充区域的工具。在GDI+中,抽象基类Brush封装了画刷的基本功能,由它又派生出System.Drawing.SolidBrush类、System.Drawing.TextureBrush类、System.Drawing.Drawing2D.HatchBrush类和System.Drawing.Drawing2D.LinearGradientBrush等类,它们分别用于单色画刷、纹理画刷阴影画刷和线性渐变画刷,9,12.5 字体(Font)与绘制文本,在绘制文本时需要指定文本所使用的字体。字体是文字显示和打印的外在形式,包括文字的字样、风格和尺寸3个主要属性。对于汉字,字样是指宋体、楷体、黑体、幼圆等;字体风格是指字体的粗细、是否倾斜等特点;字体尺寸是指初号、小初、一号、小一、二号等,字体尺寸越来越小。选用合适的字体可增强文本的显示效果。,10,12.6 复杂的形状,除了可以绘制简单的线条和矩形之外,使用GDI+还可以绘制一些比较复杂的形状,如多边形、圆弧等。下面列出了本节将要在解决方案中实现的内容: 绘制并填充多边形。 通过定义约束矩形绘制并填充椭圆。 绘制圆弧。 绘制并填充饼形。,11,12.7 绘制图象,使用Graphics类的成员除了可以绘制线条和矩形等形状之外,还可以把图像绘制到图形设备。 GDI+支持大多数流行的图像文件格式,它的Image类封装了对BMP、GIF、JPEG、PNG、TIFF、WMF和EMF格式图像文件进行加载、格式转换以及简单处理的功能。从Image类继承而来的Bitmap类封装了Windows位图操作的常用功能。,12,12.8 图形变换,在本章的12.2.2节中已经介绍过GDI+的坐标系统。如前文所述,在诸如窗体的图形表面绘制图形时,默认的起点是窗体的左上角位置,单位是像素;X坐标值向右增加,y坐标值向下增加。 当调用Graphics类的方法绘制诸如线条的图形时,线条的终点由世界坐标系(world coordinates)表示。,13,12.9 打印图形,将图形绘制到打印机和将图形绘制到窗口使用相同的GDI+方法。绘制到屏幕使用窗体的Paint事件处理程序,但是,绘制到打印机需要使用System.Drawing.Printing.PrintDocument类。VC#.NET提供了多个相关的类来支持打印过程,如下所示。 PageSettings类 该类的成员定义页面方向和页边距。 PrinterSettings类 该类用于设置和选择打印机。 PrintDialog类 该类的工作方式和OpenFileDialog 或者SaveFileDialog类相似,允许用户选择打印选项,如希望文档横向打印还是纵向打印,或者选择打印副本的数目,14,12.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论