c#图形编程入门
2009-09-29 10:57
316 查看
一。如何:创建钢笔
此示例创建一个Pen对象。
[/b]
三。如何:创建实心画笔
此示例创建一个SolidBrush对象,Graphics对象可以用它来填充形状。
四。如何:在Windows窗体上绘制线条
此示例在窗体上绘制线条。
七。如何:在Windows窗体上绘制实心椭圆
此示例在窗体上绘制实心椭圆。
Load事件处理程序中调用此方法。如果已调整该窗体的大小或者其他窗体遮蔽了该窗体,则不会重绘所绘制的内容。若要自动重绘内容,应该重写OnPaint方法。
未安装Arial字体。
DrawString
FormatFlags
StringFormatFlags
OnPaint
图形编程入门
使用字体和文本
十。如何:使用GDI+呈现图像
可以在应用程序中使用GDI+呈现以文件形式存在的图像。可通过以下方式做到这一点:创建一个Image类(如Bitmap)的新对象,创建一个Graphics对象来引用要使用的绘图图面,然后调用Graphics对象的DrawImage方法。将在图形类所表示的绘图表面上绘制图像。可以在设计时使用图像编辑器创建和编辑图像文件,而在运行时使用GDI+呈现图像。有关更多信息,请参见图像编辑器。
用GDI+呈现图像
创建一个对象,该对象表示要显示的图像。此对象必须是从Image继承的类的成员,如Bitmap或Metafile。下面显示了一个示例:
2.创建一个Graphics对象来表示要使用的绘图图面。有关更多信息,请参见如何:创建用于绘制的Graphics对象。
参见
如何:创建用于绘制的Graphics对象
如何:在Windows窗体上绘制文本
绘制线条或闭合图形
图像编辑器
GDI+中的笔、直线和矩形
图形编程入门
Windows窗体中的图形和绘制
十一。如何:创建特定形状的Windows窗体
此示例向窗体提供随该窗体一起调整大小的椭圆形状。
对System.Windows.Forms和System.Drawing命名空间的引用。
该示例重写OnPaint方法以更改窗体的形状。若要使用此代码,请将方法声明以及绘图代码复制到该方法中。
OnPaint
Region
System.Drawing
AddEllipse
Region
图形编程入门
十二。如何:在Windows窗体中复制像素以减少闪烁
在使一个简单图形产生动画效果时,用户有时可能会遇到闪烁或其他不需要的视觉效果。限制出现此问题的一种方法是对该图形使用“bitblt”进程。Bitblt是颜色数据从像素原始矩形到像素目标矩形的“位块转换”。
在Windows窗体中,使用Graphics类的CopyFromScreen方法可以实现bitblt。您可以在该方法的参数中指定源和目标(根据点)、要复制的区域大小和用于绘制新形状的图形对象。
在下面的示例中,使用Paint事件处理程序在窗体上绘制了一个形状。然后,使用CopyFromScreen方法复制了该形状。
此示例创建一个
System.Drawing.PenmyPen; myPen=newSystem.Drawing.Pen(System.Drawing.Color.Tomato);
可靠编程
当使用完需要消耗系统资源的对象(如Pen对象)后,应对其调用Dispose。 请参见
参考
Pen 概念
GDI+中的笔、直线和矩形 其他资源
图形编程入门二。如何:设置钢笔颜色 此示例更改预先存在的 Pen对象的颜色。 myPen.Color=System.Drawing.Color.PeachPuff;
编译代码此示例要求: 名为myPen的[b]Pen对象。可靠编程
应在使用完需要消耗系统资源的对象(例如Pen对象)后,对其调用Dispose。 请参见
任务
如何:创建钢笔 参考
Pen 概念
GDI+中的笔、直线和矩形 其他资源
图形编程入门 使用钢笔绘制线条和形状
[/b]
三。如何:创建实心画笔
此示例创建一个
System.Drawing.SolidBrushmyBrush=newSystem.Drawing.SolidBrush(System.Drawing.Color.Red); System.Drawing.GraphicsformGraphics; formGraphics=this.CreateGraphics(); formGraphics.FillEllipse(myBrush,newRectangle(0,0,200,300)); myBrush.Dispose(); formGraphics.Dispose();
可靠编程
当使用完那些使用系统资源的对象(如Brush对象)后,应该对这些对象调用Dispose。 请参见
参考
SolidBrush Brush 概念
GDI+中的画笔和实心形状 其他资源
图形编程入门 使用画笔填充形状
四。如何:在Windows窗体上绘制线条
此示例在窗体上绘制线条。
System.Drawing.PenmyPen=newSystem.Drawing.Pen(System.Drawing.Color.Red);
System.Drawing.GraphicsformGraphics;
formGraphics=this.CreateGraphics();
formGraphics.DrawLine(myPen,0,0,200,200);
myPen.Dispose();
formGraphics.Dispose();
编译代码
不能在Load事件处理程序中调用此方法。如果已调整该窗体的大小或者其他窗体遮蔽了该窗体,则不会重绘所绘制的内容。若要自动重绘内容,应该重写 OnPaint方法。 可靠编程
应该始终对使用系统资源的任何对象(如Pen和 Graphics对象)调用 Dispose。 请参见
参考
DrawLine OnPaint 其他资源
图形编程入门 使用钢笔绘制线条和形状 Windows窗体中的图形和绘制五。如何:绘制空心形状
此示例在窗体上绘制空心椭圆和空心矩形。
privatevoidDrawEllipse()
{
System.Drawing.PenmyPen=newSystem.Drawing.Pen(System.Drawing.Color.Red);
System.Drawing.GraphicsformGraphics;
formGraphics=this.CreateGraphics();
formGraphics.DrawEllipse(myPen,newRectangle(0,0,200,300));
myPen.Dispose();
formGraphics.Dispose();
}
privatevoidDrawRectangle()
{
System.Drawing.PenmyPen=newSystem.Drawing.Pen(System.Drawing.Color.Red);
System.Drawing.GraphicsformGraphics;
formGraphics=this.CreateGraphics();
formGraphics.DrawRectangle(myPen,newRectangle(0,0,200,300));
myPen.Dispose();
formGraphics.Dispose();
}
编译代码
不能在Load事件处理程序中调用此方法。如果已调整该窗体的大小或者其他窗体遮蔽了该窗体,则不会重绘所绘制的内容。若要自动重绘内容,应该重写 OnPaint方法。 可靠编程
应该始终对使用系统资源的任何对象(如Pen和 Graphics对象)调用 Dispose。 请参见
参考
DrawEllipse OnPaint DrawRectangle 其他资源
图形编程入门 使用钢笔绘制线条和形状 Windows窗体中的图形和绘制
六。如何:在Windows窗体上绘制实心矩形
此示例在窗体上绘制实心矩形。
System.Drawing.SolidBrushmyBrush=newSystem.Drawing.SolidBrush(System.Drawing.Color.Red);
System.Drawing.GraphicsformGraphics;
formGraphics=this.CreateGraphics();
formGraphics.FillRectangle(myBrush,newRectangle(0,0,200,300));
myBrush.Dispose();
formGraphics.Dispose();
编译代码
不能在Load事件处理程序中调用此方法。如果已调整该窗体的大小或者其他窗体遮蔽了该窗体,则不会重绘所绘制的内容。若要自动重绘内容,应该重写 OnPaint方法。 可靠编程
对任何消耗系统资源的对象(如Brush和 Graphics对象)都应调用 Dispose。 请参见
参考
FillRectangle OnPaint 概念
GDI+中的画笔和实心形状 其他资源
图形编程入门 Windows窗体中的图形和绘制 使用钢笔绘制线条和形状
七。如何:在Windows窗体上绘制实心椭圆
此示例在窗体上绘制实心椭圆。
System.Drawing.SolidBrushmyBrush=newSystem.Drawing.SolidBrush(System.Drawing.Color.Red);
System.Drawing.GraphicsformGraphics;
formGraphics=this.CreateGraphics();
formGraphics.FillEllipse(myBrush,newRectangle(0,0,200,300));
myBrush.Dispose();
编译代码
不能在Load事件处理程序中调用此方法。如果已调整该窗体的大小或者其他窗体遮蔽了该窗体,则不会重绘所绘制的内容。若要自动重绘内容,应该重写 OnPaint方法。 可靠编程
对任何消耗系统资源的对象(如Brush和 Graphics对象)都应调用 Dispose。 请参见
其他资源
Windows窗体中的图形和绘制 图形编程入门 Alpha混合线条和填充 使用画笔填充形状
八。如何:在Windows窗体上绘制文本
下面的代码示例演示如何使用Graphics的 DrawString方法在窗体上绘制文本。或者,可以使用 TextRenderer在窗体上绘制文本。有关更多信息,请参见 如何:用GDI绘制文本。
publicvoidDrawString()
{
System.Drawing.GraphicsformGraphics=this.CreateGraphics();
stringdrawString="SampleText";
System.Drawing.FontdrawFont=newSystem.Drawing.Font("Arial",16);
System.Drawing.SolidBrushdrawBrush=newSystem.Drawing.SolidBrush(System.Drawing.Color.Black);
floatx=150.0F;
floaty=50.0F;
System.Drawing.StringFormatdrawFormat=newSystem.Drawing.StringFormat();
formGraphics.DrawString(drawString,drawFont,drawBrush,x,y,drawFormat);
drawFont.Dispose();
drawBrush.Dispose();
formGraphics.Dispose();
}
编译代码
不能在Load事件处理程序中调用DrawString方法。如果已调整该窗体的大小或者其他窗体遮蔽了该窗体,则不会重绘所绘制的内容。若要自动重绘内容,应该重写 OnPaint方法。 可靠编程
以下情况可能会导致异常:
未安装Arial字体。请参见
任务
如何:用GDI绘制文本 参考
DrawString DrawText FormatFlags StringFormatFlags TextFormatFlags OnPaint 其他资源
图形编程入门九。如何:在Windows窗体上绘制垂直文本
下面的代码示例演示如何使用Graphics的 DrawString方法在窗体上绘制竖排文字。
publicvoidDrawVerticalString()
{
System.Drawing.GraphicsformGraphics=this.CreateGraphics();
stringdrawString="SampleText";
System.Drawing.FontdrawFont=newSystem.Drawing.Font("Arial",16);
System.Drawing.SolidBrushdrawBrush=newSystem.Drawing.SolidBrush(System.Drawing.Color.Black);
floatx=150.0F;
floaty=50.0F;
System.Drawing.StringFormatdrawFormat=newSystem.Drawing.StringFormat();
drawFormat.FormatFlags=StringFormatFlags.DirectionVertical;
formGraphics.DrawString(drawString,drawFont,drawBrush,x,y,drawFormat);
drawFont.Dispose();
drawBrush.Dispose();
formGraphics.Dispose();
}
编译代码
不能在可靠编程
以下情况可能会导致异常:未安装Arial字体。
请参见
参考
其他资源
十。如何:使用GDI+呈现图像
可以在应用程序中使用GDI+呈现以文件形式存在的图像。可通过以下方式做到这一点:创建一个
用GDI+呈现图像
创建一个对象,该对象表示要显示的图像。此对象必须是从Image继承的类的成员,如Bitmap或
//UsestheSystem.Environment.GetFolderPathtogetthepathtothe
//currentuser'sMyPicturesfolder.
BitmapmyBitmap=newBitmap
(System.Environment.GetFolderPath
(System.Environment.SpecialFolder.MyPictures));
2.创建一个Graphics对象来表示要使用的绘图图面。有关更多信息,请参见
//CreatesaGraphicsobjectthatrepresentsthedrawingsurfaceof
//Button1.
Graphicsg=Button1.CreateGraphics();
3.调用图形对象的DrawImage以呈现图像。必须同时指定要绘制的图像以及将绘制它的位置的坐标。
g.DrawImage(myBitmap,1,1);
参见
任务
参考
概念
其他资源
十一。如何:创建特定形状的Windows窗体
此示例向窗体提供随该窗体一起调整大小的椭圆形状。
protectedoverridevoidOnPaint(System.Windows.Forms.PaintEventArgse)
{
System.Drawing.Drawing2D.GraphicsPathshape=newSystem.Drawing.Drawing2D.GraphicsPath();
shape.AddEllipse(0,0,this.Width,this.Height);
this.Region=newSystem.Drawing.Region(shape);
}
编译代码
此示例需要:对
该示例重写
请参见
参考
其他资源
十二。如何:在Windows窗体中复制像素以减少闪烁
在使一个简单图形产生动画效果时,用户有时可能会遇到闪烁或其他不需要的视觉效果。限制出现此问题的一种方法是对该图形使用“bitblt”进程。Bitblt是颜色数据从像素原始矩形到像素目标矩形的“位块转换”。
在Windows窗体中,使用
在下面的示例中,使用
注意 |
---|
将窗体的 |
privatevoidForm1_Paint(System.Objectsender,
System.Windows.Forms.PaintEventArgse)
{
e.Graphics.FillEllipse(Brushes.DarkBlue,new
Rectangle(10,10,60,60));
e.Graphics.FillRectangle(Brushes.Khaki,new
Rectangle(20,30,60,10));
e.Graphics.CopyFromScreen(newPoint(10,10),newPoint(100,100),
newSize(70,70));
}
编译代码
上面的代码在窗体的Paint事件处理程序中运行,从而在重新绘制窗体时仍然会保持图形。同样地,不要在Load事件处理程序中调用图形相关的方法,因为如果窗体大小经过调整或被其他窗体遮盖后,已绘制的内容将不会重新绘制。 请参见
参考
Graphics.FillRectangleMethod Control.OnPaintMethod CopyPixelOperation 其他资源
Windows窗体中的图形和绘制 使用钢笔绘制线条和形状
相关文章推荐
- c#图形编程入门
- c#图形编程入门
- C#图形编程入门经典贴
- C#编程入门10_面向对象之继承
- VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)
- VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数)
- C# for Unity 编程语言快速入门教程(连载5)---C#OOP编程之封装性
- 浅析C#中图形编程
- android图形系统编程学习(一)入门
- C#发现之旅第四讲 Windows图形开发入门
- C#编程入门--字符串类型转换帮助类
- C#编程入门_网络编程_21
- 浅析C#中的图形编程
- 入门级:怎么使用C#进行套接字编程(二)
- Java图形编程入门(连载1)
- C#串口编程入门-C#下的串口控件SerialPort简介
- C#学习之GDI + 图形编程基础(一)
- C#语言 第四部分 图形界面编程(六) 分组容器和卡片容器(1)
- JAVA图形编程入门(连载2)
- QT4 Creator下的图形界面编程入门