图形设备接口(GDI+)
使用 Graphics 类创建绘制表面
使用Pen 类绘制直线
使用Brush类为图形对象填充颜色
使用Color类型为图形对象应用颜色
使用 Font 类在绘图表层写入文本
使用 Graphics 类 创建绘制表面
Graphics 类
BufferedGraphics类
BufferedGraphicsManager 类
使用 Graphics 类创建一个绘制表面
使用Pen 类 绘制直线
Pen类的最常用的成员
Alignment:此属性获取或设置Pen类的对象的对齐方式,此属性用于绘制闭合的曲线和多边形。
Brush:此属性获取或设置 Brush 类的对象,该对象确定用于填充直线(通过Pen类的对象绘制)的画笔类型。
Color:此属性获取或设置通过Pen类的对象绘制的直线的颜色。可以将颜色值传递给 Pen类或Brush类的构造函数。
DashPattern:此属性获取或设置对自定义虚线的空白区域和长度进行定义的浮点值数组。如要让此属性生效,必须将DashStyle属性设置为Custom。
DashStyle:此属性获取或设置通过Pen类的对象绘制的虚线的样式。此属性的默认值为Solid,但也可为DashDot、DashDotDot或Custom。如果它为 Custom,则还需要设置DashPattern 属性。
EndCap 属性: 此属性获取或设置LineCap枚举值,该值指定了通过Pen类对象绘制的直线的终点样式。此属性的默认值为Flat。 LineCap枚举具有如下值:
AnchorMask
ArrowAnchor
Custom
DiamondAnchor
Flat
Round
NoAnchor
RoundAnchor
Square
SquareAnchor
Triangle
PenType 属性 此属性为只读属性,该属性检索通过Pen类对象绘制的直线的样式。此属性的值取决于是给Pen类的对象还是Brush类的对象传递了颜色值。此属性的默认值为 SolidColor。
StartCap 此属性获取或设置LineCap枚举值,该值指定了通过Pen类对象绘制的直线的起点样式。此属性的默认值为 Flat。LineCap枚举具有如下值:
AnchorMask
ArrowAnchor
Custom
DiamondAnchor
Flat
Round
NoAnchor
RoundAnchor
Square
SquareAnchor
Triangle
Transform:此属性获取或设置通过Pen类对象绘制的直线的变换。
MultiplyTransform:此方法用Pen类对象所绘制的直线的指定矩阵乘以变换矩阵。
ResetTransform:此方法重置通过Pen类对象绘制的直线的变换矩阵。
RotateTransform:此方法将Pen类对象绘制的直线旋转指定的角度。
ScaleTransform:此方法按指定因子对通过Pen类对象绘制的穿过x轴和y轴的直线进行缩放。
TranslateTransform:此方法将通过Pen类对象绘制的直线平移指定的尺寸。
SetLineCap:此方法设置直线的起点和终点的线帽样式,还有虚线的线帽样式,称为虚线帽。
使用Brush类为 图形对象填充颜色
Brush 类
Clone:此方法实现了 ICloneable接口,并返回一个新的 Brush类的对象的精确副本。例如,对 Brush类的对象b1调用Clone 方法,它将返回此对象的一个新的精确副本,而不仅仅是引用。
当你想要以略有不同的配置重用Brush 类的现有对象时,Clone 方法很有用。例如,若要创建一个图形编辑器以帮助图形设计者复制一个对象的画笔,然后将其应用于另一个对象,再分别使用这两个画笔,就可以使用Clone方法来实现此功能。
Dispose:Brush类的Dispose方法实现了IDisposable接口,并释放内存中的Brush类的对象。应该通过调用Dispose方法来手动销毁Brush类的对象,因为Brush类的对象和各种其他GDI+对象占用了大量的计算机资源。
SolidBrush 类
SolidBrush类使用单色填充矩形或椭圆等图形对象,而你可以使用如下某个方法来指定单色:
1.将颜色传递给SolidBrush类的构造函数
2.调用该类的 Color属性
3.使用Brushes类的某个属性
4.使用SystemBrushes类的某个属性
TextureBrush 类
TextureBrush类使用图像来填充图形对象 。你可以通过如下方法使用某种模式(例如clamp或各种形式的平铺)的图像来填充某个形状:
1.将 Image类的对象传递给TextureBrush 类的构造函数
2.或者将Image类的对象对象赋给 TextureBrush类的Image属性
3.用TextureBrush类的WrapMode 属性定义图像填充的模式
Brushes 类
1.Brushes类拥有一些静态属性,这些属性都将返回表示特定颜色的SolidBrush类的对象。
2.尽管 Brushes 类为创建特定颜色的 SolidBrush类对象而提供了一种简单便捷的方法,但只能在你明确知道使用哪种颜色的时候才能使用此方法。
SystemBrushes 类
1.SystemBrushes类与Brushes类工作方式类似,但SystemBrushes类只创建表示系统颜色的 SolidBrush 类的对象。
2.与 Brushes类相似,SystemBrushes类的属性也静态的。
使用Color类型 为图形对象应用颜色
在Microsoft .NET Framework中,可以使用如下三种方式来指定颜色:
(1)颜色名称
(2)十六进制值
(3)ARGB值
1.Color结构
2.ColorConverter 类
3.ColorTranslator 类
4.SystemColors类
Color 结构的成员
A:此属性检索作为Color类对象字节值的alpha分量。此属性为只读的。
R:此属性检索作为Color类对象字节值的red分量。此属性为只读的。
G:此属性检索作为Color类对象字节值的green分量。此属性为只读的。
B:此属性检索作为Color类对象字节值的 blue分量。此属性为只读的。
FromARGB:此方法用于创建基于 alpha、红色、绿色和蓝色(Int32)的Color结构。此方法具有4个重载形式。
FromKnownColor:此方法创建基于已知的颜色的Color 结构。
FromName:此方法通过使用颜色名称来创建Color 结构。如果对于指定颜色名称没有相应的Color结构,则Color的四个组分alpha、红色、绿色和蓝色将都等于0。
GetHue:此方法检索Color 结构的“色度-饱和度-亮度”(hue)值。
ToArgb:此方法检索32位ARGB整数值。
ToKnownColor:此方法检索一个基于某个Color 结构的已知颜色值。
ColorConverter类的成员
CanConvertFrom:此方法通过返回true 或 false值,以确定该转换器是否可以将指定源类型对象转换为转换器的本机类型。
CanConvertTo:此方法返回true 或 false值,此值指示转换器能否使用上下文将对象转换为指定的目标类型。
ConvertFrom:此方法将给定对象转换为转换器的本机类型。
ConvertFromString:此方法将此文本转换为对象(继承于TypeConverter)。
ConvertTo:此方法将指定对象转换为其他类型。
ConvertToString:此方法将此文本转换为字符串表示形式(继承于TypeConverter)。
GetProperties:此方法返回由值参数指定的数组类型的属性集合(继承于TypeConverter)。
ColorTranslator 类的成员
FromHtml:此方法将HTML颜色值转换成 Color结构。
FromOle:此方法将OLE颜色值转换成 Color结构。
FromWin32:此方法将 Windows颜色转换成 Color结构。
ToHtml:此方法将指定的Color结构转换成 HTML颜色值。
ToOle:此方法将指定的Color结构转换成 OLE颜色值。
ToWin32:此方法将指定的Color结构转换成Windows颜色。
SystemColors 类成员
ActiveBorder:此属性获取用于表示活动窗口边框的颜色的Color结构。
ActiveCaption:此属性获取用于表示活动窗口标题栏的背景色的Color结构。
Desktop:此属性获取用于表示桌面颜色的Color结构。
Menu:此属性获取用于表示菜单项的背景色的 Color结构。
MenuBar:此属性获取用于表示菜单栏的背景色的Color结构。
MenuText:此属性获取用于表示菜单的字体颜色的Color结构。
WindowsText:此属性获取用于表示窗口用户区域中文本的颜色的Color结构。
使用 Font 类在 绘图表层写入文本
1.FontFamily
2.Font
3.StringFormat
4.SystemFonts
5.FontConverter
使用 Rectangle 类型绘制图形形状
1.Rectangle 结构
2.RectangleConverter 类
3.Region 类
使用 Point 和 Size 类型指定对象大小
Rectangle:结构的成员
Bottom:该属性标识矩形下边框的位置。通过使用 Y 属性值和 Height 属性值的和来计算该属性。
Height:该属性标识矩形区域的高度。
Left:该属性检索矩形区域左上角的 X 坐标(X 属性值),并标识矩形区域的左边沿距 Graphics 对象的边框有多远。
Right:该属性标识矩形区域的右边框。通过使用 X 属性值和 Width 属性值的和来计算该属性。
Top:该属性检索矩形区域左上角的 Y 坐标(Y 属性值),并标识矩形区域的上边沿距 Graphics 对象的边框有多远。
Width:该属性标识矩形区域的宽度。
Location:该属性标识矩形区域左上角的 X 和 Y 坐标。
Size:该属性标识矩形区域的大小。
X:该属性标识矩形区域左上角的 X 坐标。
Y:该属性标识矩形区域左上角的 Y 坐标。
Contains:该方法确定一个点是否在矩形边框内。当你想绘制一个作为图形元素边框的矩形时以及当绘制时确定一条线或其他图形对象是否也在该边框内时,此方法很重要。
FromLTRB:该方法通过使用四个位置 LTRB 绘制矩形。LTRB 表示将要绘制的矩形的左端、顶端、右端和底端。
Inflate:该方法将根据指定量来放大矩形。
Offset:该方法用于在绘制区域内将整个矩形的位置偏移或调整指定的量。
Union:该方法确定指定的矩形与另外一个矩形相互重叠的区域。
RectangleConverter 类
将矩形的字符串值转换为 Rectangle 对象是使用 RectangleConverter 类的最简单的示例,同时也是最常用的方法。
Region 类的方法
Exclude:此方法用于标识与指定区域不相交的区域。
FromHrgn:此方法通过使用非托管Windows来创建一个区域,用以处理 GDI 区域。FromHrgn 中的 HRgn是指句柄区域。
GetHrgn:此方法用于获取区域的定义,该区域是通过使用 GDI 区域的非托管 Windows 句柄来定义的。
Intersect:此方法根据一个区域如何与另一个区域进行重叠或相交来增加或减小区域的大小。
Transform:此方法用于转换或更改区域的形状或特性。
Translate:此方法将区域移动或偏移指定的量。
Union:此方法根据区域与 Graphics 对象定义的路径相交的程度来增加区域的大小。
Xor:此方法根据区域与 Graphics 对象定义的路径相交的程度来减小区域的大小。它执行 Union 方法的逆操作。
使用 Point 和 Size 类型 指定对象大小
.NET Framework 提供了 Point 和 Size 结构以及 PointConverter 和 SizeConverter 类来管理几何形状的点、位置和大小。
1.Point 结构
2.PointConverter 类
3.Size 结构
4.SizeConverter 类
使用图像、位图和图标
GDI+ 类型应该用于创建动态性质的图形。
1.通过使用 Image 和 Bitmap 类将图像添加到绘制区域
2.使用 Icon 类将图标插入绘制表面
将图像添加到绘制区域
.NET Framework 提供了 Image、Bitmap、ImageConverter 和 ImageAnimator 类来创建和管理各种类型的图形和图像。
1.Image 类用于表示特定类型的图像
2.位图图像由 Bitmap 类管理,Bitmap 类继承自 Image 类
3.ImageConverter 类的功能等同于 GDI+ 提供的其他 Converter 类
4.ImageAnimator类
使用 Icon 类将图标 插入绘制表面
Icon 类的常用成员
Height:该属性用于获取图标的高度。
Width:该属性用于获取图标的宽度。
Size:该属性用于获取图标的高度和宽度。
Handle:该属性用于获取图标的 Windows 句柄。所有应用程序窗口和 Windows 使用的很多资源都有一个与它们关联的数字值,称为句柄。操作系统用句柄来标识窗口或资源。
ExtractAssociatedIcon:该方法用于从图像提取图标。
FromHandle:该方法用于从非托管 Windows 句柄创建 Icon 对象。
ToBitmap:该方法用于将 Icon 对象转换为 Bitmap 对象。
Save:该方法用于将图标保存到流中。