3、运用GradientBrush:
GradientBrush又可分为LinearGradientBrush和PathGradientBrush两种,从它们的名称我们可以知道前者是线性渐变的,而后者则是路径渐变的,因而能创造出更复杂和完美的效果。下面我就给大家分别举例:
1)、运用LinearGradientBrush:
using System; using System.Windows.Forms; using
System.Drawing; using System.Drawing.Drawing2D;
public class
LinearGradientbru:Form { public LinearGradientbru() { this.Text =
"运用LinearGradientBrush示例"; this.Paint += new
PaintEventHandler(Fill_Graph); }
public void
Fill_Graph(object sender,PaintEventArgs e) { Rectangle r = new
Rectangle(500, 300, 100, 100); LinearGradientBrush lb = new
LinearGradientBrush(r, Color.Red, Color.Yellow,
LinearGradientMode.BackwardDiagonal); e.Graphics.FillRectangle(lb,
r); }
public static void Main() { Application.Run(new
LinearGradientbru()); } }
| 所得图形如下:

2)、运用PathGradientBrush:
using System; using System.Windows.Forms; using
System.Drawing; using System.Drawing.Drawing2D;
public class
PathGradientbru:Form { public PathGradientbru() { this.Text =
"运用PathGradientBrush示例"; this.Paint += new
PaintEventHandler(Fill_Graph); }
public void Fill_Graph(object
sender,PaintEventArgs e) { e.Graphics.TextRenderingHint =
TextRenderingHint.AntiAliased;
e.Graphics.FillRectangle(backgroundBrush, ClientRectangle);
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(180,
Color.White)), ClientRectangle);
//先设置好一个路径 GraphicsPath path
= new GraphicsPath(new Point[] { new Point(40, 140), new
Point(275, 200), new Point(105, 225), new Point(190, 300), new
Point(50, 350), new Point(20, 180), }, new byte[] {
(byte)PathPointType.Start, (byte)PathPointType.Bezier,
(byte)PathPointType.Bezier, (byte)PathPointType.Bezier,
(byte)PathPointType.Line, (byte)PathPointType.Line, });
//创建一把PathGradientBrush
PathGradientBrush pgb = new
PathGradientBrush(path);
//设置画刷的周围颜色
pgb.SurroundColors =
new Color[] { Color.Green, Color.Yellow, Color.Red,
Color.Blue, Color.Orange, Color.White,
};
//用画刷进行填充 e.Graphics.FillPath(pgb, path); }
public static void Main() { Application.Run(new
PathGradientbru()); }
}
| 所得图形如下:

4、运用TexturedBrush:
using System; using System.Windows.Forms; using
System.Drawing; using System.Drawing.Drawing2D;
public class
Texturedbru:Form { Brush bgbrush;
public Texturedbru() {
//创建一幅图像以供填充椭圆的背景用 Image bgimage = new Bitmap("dotnet.gif");
bgbrush = new TextureBrush(bgimage); this.Paint+=new
PaintEventHandler(Text_bru);
}
public void Text_bru(object
sender,PaintEventArgs e) { Graphics g = e.Graphics;
g.FillEllipse(bgbrush,50,50,500,300);
}
public static
void Main() { Application.Run(new Texturedbru()); } }
| 使用图像:
图像在图形编程中经常要用到的,其对用户界面的作用也是非常明显的。在以前的编程过程中,对图像的操作细节是相当繁琐的而且很容易出错。现在,在GDI+下面,你可以用C#语言很容易的完成你所希望的图像编程。
很简单,你只要通过以下步骤就可以实现图像的编程。
1、 创建一个位图类对象如下:
Image
img = new Bitmap("image.bmp");
2、 在DrawImage()方法中运用上述对象:
g.DrawImage(img,20,20,100,90);
至于使用图像的实例,限于篇幅,我就不再这里介绍了。相信大家能很容易地完成一个运用图像的实例的。
总结:
在这篇文章中,我主要用到了两个非常核心的名字空间:一个是System.Drawing、一个是System.Drawing.Drawing2D。有了它们,我们就可以很方便的调用其中的方法、属性来实现以往进行图形编程需要付出很大代价才能完成的任务,这不能不说是GDI+给我们带来的优点。所以,掌握好GDI+,我相信你的图形编程能力会更上一层楼的。
|