利用.NET绘图技术制作水晶按钮控件

http://tech.ddvip.com   2006年11月18日    社区交流

本文详细介绍利用.NET绘图技术制作水晶按钮控件

  

  在这个示例中用到的比较关键的类是GraphicsPath、LinearGradientBrush和PathGradientBrush。我们已经知道,对于复杂的图形绘制操作都会用到GraphicsPath对象,GraphicsPath为我们提供了一个非常方便的解决方案,它由一系列直线和曲线组成,通过创建复杂的闭合路径,我们可以轻松创建任意不规则图形;LinearGradientBrush和PathGradientBrush对象是我们成功创建该示例程序的关键类,它们都继承于基类Brush,Brush对象定义用于填充图形形状的内部的对象。LinearGradientBrush按照起始和结束坐标以及渐变的起始和结束颜色来创建一个该类的实例,该类支持双色渐变和自定义多色渐变,所有渐变都是沿由矩形的宽度或两个点指定的直线定义的,默认情况下,双色渐变是沿指定直线从起始色到结束色的均匀水平线性混合,所以,根据这个特性我们利用该类来绘制按钮本身和按钮顶部的白色渐变部分,部分代码如下:

//创建按钮本身的图形
Rectangle rc = new Rectangle(btnOffset, btnOffset, this.ClientSize.Width - 8 - btnOffset, this.ClientSize.Height - 8 - btnOffset);
GraphicsPath path1 = this.GetGraphicsPath(rc, 20);
LinearGradientBrush br1 = new LinearGradientBrush(new Point(0, 0), new Point(0, rc.Height + 6), Color.Blue, Color.White);
//创建按钮顶部的白色渐变
Rectangle rc3 = rc;
rc3.Inflate(-5, -5); //
rc3.Height = 15;
GraphicsPath path3 = GetGraphicsPath(rc3, 20);
LinearGradientBrush br3 = new LinearGradientBrush(rc3, Color.FromArgb(255, Color.White), Color.FromArgb(0, Color.White), LinearGradientMode.Vertical)

  PathGradientBrush类通过渐变填充 GraphicsPath对象的内部,它可以从路径的中点到路径的外边界边缘的进行平滑的彩色渐变,我们利用该类来创建按钮的阴影部分,CenterColor属性用来设定路径渐变的中心处的颜色即黑色,SurroundColors数组用来设定路径中点相对应的颜色的数组,部分代码如下:

来源:天极软件    作者:窦瑞欣    责编:豆豆技术应用

正在加载评论...