前一阶段看到很多网友提问关于设计一些样式独特的按钮,或者要在一些控件上做出一
些图标之类的
东西的问题,往往得到的答复就是一句“用GDI+”那么什么叫做GDI+呢?如何应用GDI+
呢?今天给大家
做一个小例子,希望对大家有帮助:
1 GDI+的定义:GraphicDevice Interface Plus 就是图形装置接口,我们通过这个借
口可以对控件进行
一些设计,。
2 一个小例子:如何用GDI+来修改一个按钮的样式:
第一步,我们要建立一个类——Button_paint,这个类就是我们以后要用的,我们自己
设计的按钮。
第二步,我们需要引用两个组件进来:
一个是 System.Drawing.dll,这个是GDI+所需要的组件。
另外一个是 System.Windows.Forms.dll ,我们需要这个组件,来重写里边的按钮对
象。
第三步,现在开始进入编写代码,首先要做的是把刚才引用的组件调入我们的程序:
using System.Drawing;
using System.Windows.Forms;
然后我们要在这里类里边继承原始的Button对象,以便于对这个对象进行重写,代码如
下:
public class Button_paint:System.Windows.Forms.Button
然后在这个函数的进入点 public Button_paint()里边加入一个代理,
就是让这个类被调用的时候,当执行图像生成部分this.Paint的时候自动激活
我们自己所设计的这个方法button_paint:
this.Paint+=new System.Windows.Forms.PaintEventHandler(button_paint);
然后我们写一下button_paint这个方法,把这个绘画的代理传入这个方法,
后边边开始就是正规的GDI+编程了。
private void button_paint(object sende,System.Windows.Forms.PaintEventArgs
e)
在button_paint 这个方法里边,我们可以给这个按钮加入一些简单的图形修饰,方法
如下:
首先我们定义一根画笔,我们需要用它来进行图像的绘画,这根画笔我们用红色吧:
Pen pen=new Pen(Color.Red);
然后定义画笔的宽度:
pen.Width=8;
好的,我们现在开始画了,操作的对象自然就是我们传递进来的这个需要修饰的对象 e
让我们先画条直线:
e.Graphics.DrawLine(pen,7,4,7,this.Height-4);
这个没有必要多解释了吧?
然后再划一个椭圆
e.Graphics.DrawEllipse(pen,this.Width-16,6,8,8);
然后把这个类编译好,然后引用到我们的应用程序中调用吧,这时候就可以看到我们涉
及的这个对象的效果了。
具体的我做的这个例子的代码如下:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace Button_paint
{
public class Button_paint:System.Windows.Forms.Button
{
public Button_paint()
{
this.Paint+=new System.Windows.Forms.PaintEventHandler(button_paint);
}
private void button_paint(object sende,System.Windows.Forms.PaintEventArgs
e)
{
Pen pen=new Pen(Color.Red);
pen.Width=8;
e.Graphics.DrawLine(pen,7,4,7,this.Height-4);
e.Graphics.DrawEllipse(pen,this.Width-16,6,8,8);
}
}
}