摘要: 委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法,委托类型包含3个重要的信息:它所调用的方法的名称;该方法的参数(可选);该方法的返回值(可选)。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace SimpleDelegate{ public partial ... 阅读全文
posted @ 2012-03-14 20:24 ttssrs 阅读(193) 评论(0) 推荐(0) 编辑
摘要: Print时间的顺序:(1)首先,BeginPrint事件被引发。应用程序的BeginPrint事件处理程序应该执行打印开始时所需的任何特殊处理。(2)然后,QueryPageSettings事件被引发。此事件的事件处理程序应该修改只涉及那个页面的打印机设置。(3)接着,PrintPage事件被调用。可以论证得出它是所有这些事件中最重要的一个,执行一个页面的实际打印操作。PrintPage事件类似于我们更加熟悉的Paint事件。区别是:传递给Paint事件处理程序的是PaintEventArgs类型的一个参数,而PrintPage事件处理程序所期望的是一个PrintPageEventArgs类 阅读全文
posted @ 2012-03-14 20:23 ttssrs 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 用于变换的方法:Graphics g = e.Graphics; g.FillRectangle(Brushes.White, this.ClientRectangle); //first,draw a non-scaled rectangle and circle g.DrawRectangle(Pens.Black, 10, 10, 50, 50); g.DrawEllipse(Pens.Black,10, 10, 10, 10); //now apply the scaling transformation //this will scale subsequent opera... 阅读全文
posted @ 2012-03-14 20:22 ttssrs 阅读(222) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Drawing.Drawing2D;namespace WindowsFormsApplication2{ public partial class Form1 : Form { private ... 阅读全文
posted @ 2012-03-14 20:22 ttssrs 阅读(2535) 评论(1) 推荐(0) 编辑
摘要: private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.FillRectangle(Brushes.White, this.ClientRectangle); //create essensial objects for painting text strings SizeF sizeF = g.MeasureString("Test", this.Font); ... 阅读全文
posted @ 2012-03-14 20:12 ttssrs 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 规则形状的裁剪区域 Graphics g = e.Graphics; g.FillRectangle(Brushes.White, this.ClientRectangle); //Define the rectangle that we'll use to define our clipping region Rectangle rect = new Rectangle(10, 10, 80, 50); //Draw the clipping region g.DrawRectangle(Pens.Black, rect); //now apply the clipping re.. 阅读全文
posted @ 2012-03-14 20:11 ttssrs 阅读(218) 评论(0) 推荐(0) 编辑
摘要: GraphicsPath本身是一个由有顺序的一组图形组成的路径,因为这组图形是有顺序的,而且每个图形都由一组有顺序的直线和曲线组成,所以GraphicsPath本身是一个有起点和终点的路径。在一个区域中创建另一个区域:要从以后的区域中创建另一个区域,构造函数不接受已有的区域对象本身,而是接受一个区域数据的数组,我们可以从其GetRegionData方法中获取这个区域所需要的数据,这个方法一RegionData对象的形式返回所需的数据,接着就可以吧这个对象传送给Region构造函数,创建与已有Region对象类似的新Region对象。Region r1 = new Region(new rect 阅读全文
posted @ 2012-03-14 20:10 ttssrs 阅读(255) 评论(0) 推荐(0) 编辑
摘要: string str = "spp"; string spp = "very good";如何由str得到very good?public partial class Form1 : Form { string str = "spp"; public string spp = "very good"; public Form1() { InitializeComponent(); MessageBox.Show(this.GetType().GetField(str).GetValu... 阅读全文
posted @ 2012-03-14 20:09 ttssrs 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 编辑器加载中...using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Drawing.Drawing2D;using System.Drawing.Imaging;using System.Drawing.Text;namespace WindowsFormsApplica 阅读全文
posted @ 2012-03-14 20:08 ttssrs 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 图像裁剪:Graphics g = e.Graphics; Bitmap bmp = new Bitmap("a.jpg"); g.FillRectangle(Brushes.White, this.ClientRectangle); Rectangle sr = new Rectangle(80, 60, 400, 400); Rectangle dr = new Rectangle(0, 0, 200, 200); g.DrawImage(bmp, dr, sr, GraphicsUnit.Pixel);源矩形定义了修剪后要在原图像中保留的那一部分,目标矩形描述了在绘图 阅读全文
posted @ 2012-03-14 20:07 ttssrs 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 启用制表位应使用StringFormat对象的SetTabStops方法,之后就可以在要绘制的文本中使用制表位了,方法是在文本字符串中包含制表符,然后把文本字符串和StringFormat对象传送给Graphics.DrawString方法。Graphics g = e.Graphics; g.FillRectangle(Brushes.White, this.ClientRectangle); Font f = new Font("Times New Roman", 12); Font bf = new Font(f, FontStyle.Bold); StringFor 阅读全文
posted @ 2012-03-14 20:06 ttssrs 阅读(390) 评论(0) 推荐(0) 编辑
摘要: GDI+提供了两个类可以用于表示图像:Bitmap类和Metafile类,这两个类都继承自Image类。Bitmap类提供了处理位图的功能,位图是基于光栅的图像,这种图像是由放在一个二维网格上的方块像素组成的,网格中的每个像素都有自己的颜色。Metafile类提供了处理矢量图像的功能,在绘图表面上绘制Metafile对象时,它会重放绘图操作,把它们一次应用到绘图表面上。下面的例子创建一个bitmap对象,使用它从文件中把一个位图加载到内存中,接着使用graphics类把内存中的图像显示到绘图表面上: Graphics g = e.Graphics; Bitmap bmp = new Bitm. 阅读全文
posted @ 2012-03-14 20:06 ttssrs 阅读(225) 评论(0) 推荐(0) 编辑
摘要: GDI+的Brush类本身是一个抽象类,所以不能直接实例化它,但GDI+ API提供了下述5个类扩展了brush类:SolidBrush、TextureBrush、LinearGradientBrush、PathGradiantBrush、HatchBrush。SolidBrushSolidBrush b = new SolidBrush(Color.pink);g.FillRectangle(b,20,20,40,40);b.Dispose();TextureBrush类TextureBrush对象用基于光栅的图像来填充图形,他使用一个来自图像文件如bmp、jpg、png的图像,使用bitm 阅读全文
posted @ 2012-03-14 20:04 ttssrs 阅读(521) 评论(0) 推荐(0) 编辑
摘要: FontFamily类用FontFamily类的实例表示字体系列--一组基本设计类似、但在样式上有某些变化的字样。标准字体样式中的变化一般有黑体、斜体和黑斜体,如Arial字体系列包含4个字样:Arial Regular 、Arial Bold、Arial Italic、Arial Bold Italic。创建FontFamily对象:方法一:FontFamily ff = new FontFamily(“Arial”)方法二:使用GenericFontFamily枚举的值(该枚举是System。Drawing。Text命名空间的一部分)FontFamily ff = new FontFami 阅读全文
posted @ 2012-03-14 20:04 ttssrs 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 用线宽为1像素的钢笔绘制矩形:Pen p = new Pen(Color.Black);g.DrawRectangle(p,3,3,8,7); 网格中左上角的单元格表示像素(0,0),这个矩形的左上角坐标是(3,3),其长度为8个像素,宽度为7个像素。Pen p = new Pen(Color.Black,3);p.Alignment = PenAlignment.Center;g.DrawRectangle(p,3,3,8,7); 结果图中矩形的左上角由像素(3,3)制定,但可以看出矩形在外观上的角点在像素(2,2)。如果改变alignment的属性,比如改为Inset,其效果如下:Dash 阅读全文
posted @ 2012-03-14 20:03 ttssrs 阅读(431) 评论(0) 推荐(0) 编辑
摘要: e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; (打开反锯齿功能) e.Graphics.FillRectangle(Brushes.Black,1,0,5,4);运行效果: 矩形的左上角在1,0点的中心,像素边界的颜色由它们与在FillRectangle方法调用中定义的实际矩形的相交程度来决定,所以:角像素的浅灰色反映了它们与矩形有25%相交的情况,这是只包含25%黑色的灰度。矩形边界上的每个像素与矩形相加50%,所以这些像素的灰度包含50%的黑色。把浮点数坐标传送给所有的方法,且在.. 阅读全文
posted @ 2012-03-14 20:02 ttssrs 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 任何绘图表面都有三个主要特性:界面的大小,像素分辨率和颜色深度。如果有一个分辨率非常高的位图,要把它绘制到一个低分辨率的绘图表面上,该位图就会进行放大,显得相当大。绘图表面的颜色深度定义了每个像素可以存储多少种颜色。在GDI+中,每个像素都描述了一种颜色。在GDI+上,默认的绘图模型使用24为颜色深度。如果绘图表面不允许使用24位颜色深度,GDI+有时会限制可以执行的图形操作类型,有时则与颜色的转换不兼容--这个过程称为抖动。在抖动过程中,GDI+在临近的像素中使用其他颜色,以获得与不能显示的那种颜色最接近的效果。为了避免抖动,可以调用Graphics类的一个方法GetNearestColo. 阅读全文
posted @ 2012-03-14 19:53 ttssrs 阅读(234) 评论(0) 推荐(0) 编辑