背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读新闻

浅析C#中图形编程

[日期:2003-07-11] 来源:天极网  作者:王凯明 [字体: ]


  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+,我相信你的图形编程能力会更上一层楼的。
上一页12345  GO
阅读:
录入:木鸟

推荐 】 【 打印
上一篇:Vml:美洲豹系列教程之三(Line,Polyline(线)对象)
下一篇:在ASP.NET中将数据直接输出成Excel格式
相关新闻      
本文评论       全部评论
发表评论


点评: 字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款