vs 2008 c# 关于GDI里面的一些小问题 本人刚接触c#

来源:百度知道 编辑:UC知道 时间:2024/06/01 14:52:02
比如创建一个画笔对象,Pen p=Pens.red , Pens是个什么东西?是一个对象吗?,类似的还有systemPens,Brushes……
还有一个问题是,创建一个Graphics对象的时候为什么一般都用this.creategraphics来初始化,而不是用new graphics

Pens、SystemPens、Brushes都是被标示为sealed,它们的所有公开属性都是静态属性,Pens和SystemPens的所有属性返回的都是一个Pen对象,Brushes的每个属性都是一个Brush对象。通过它们的静态属性可以方便的获取常用的画笔、画刷等对象。

Graphics 类提供将对象绘制到显示设备的方法。Graphics 与特定的设备上下文关联。
通过调用从 System.Windows.Forms.Control 继承的对象上的 Control.CreateGraphics 方法,或通过处理控件的 Control.Paint 事件并访问 System.Windows.Forms.PaintEventArgs 类的 Graphics 属性,可以获取 Graphics 对象。也可以使用 FromImage 方法从图像创建 Graphics 对象。
通过这些方式创建Graphics系统会自动将创建的Graphics对象与相关设备上下文相关联!
至于为什么不能用new Graphics()创建对象是因为Graphics没有公开的构造函数,这样做是为了防止用户通过new Graphics()来创建Graphics对象,而必须通过以上方法创建!