用渐变色填充区域
InBlock.gif using System;
InBlock.gif using System.Drawing;
InBlock.gif using System.Collections;
InBlock.gif using System.ComponentModel;
InBlock.gif using System.Windows.Forms;
InBlock.gif using System.Data;
InBlock.gif using System.Drawing.Drawing2D;
InBlock.gif
InBlock.gif namespace 渐变
InBlock.gif...{
InBlock.gif        /** <summary>
InBlock.gif         /// Form1 的摘要说明。
InBlock.gif         /// </summary>
InBlock.gif         public class Form1 : System.Windows.Forms.Form
InBlock.gif        ...{
InBlock.gif                /** <summary>
InBlock.gif                 /// 必需的设计器变量。
InBlock.gif                 /// </summary>
InBlock.gif                 private System.ComponentModel.Container components = null;
InBlock.gif
InBlock.gif                 public Form1()
InBlock.gif                ...{
InBlock.gif                         //
InBlock.gif                         // Windows 窗体设计器支持所必需的
InBlock.gif                         //
InBlock.gif                        InitializeComponent();
InBlock.gif
InBlock.gif                         //
InBlock.gif                         // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
InBlock.gif                         //
InBlock.gif                }
InBlock.gif
InBlock.gif                /** <summary>
InBlock.gif                 /// 清理所有正在使用的资源。
InBlock.gif                 /// </summary>
InBlock.gif                 protected override void Dispose( bool disposing )
InBlock.gif                ...{
InBlock.gif                         if( disposing )
InBlock.gif                        ...{
InBlock.gif                                 if (components != null)    
InBlock.gif                                ...{
InBlock.gif                                        components.Dispose();
InBlock.gif                                }
InBlock.gif                        }
InBlock.gif                         base.Dispose( disposing );
InBlock.gif                }
InBlock.gif
InBlock.gifWindows Form Designer generated code #region Windows Form Designer generated code
InBlock.gif                /** <summary>
InBlock.gif                 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
InBlock.gif                 /// 此方法的内容。
InBlock.gif                 /// </summary>
InBlock.gif                 private void InitializeComponent()
InBlock.gif                ...{
InBlock.gif                         //    
InBlock.gif                         // Form1
InBlock.gif                         //    
InBlock.gif                         this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
InBlock.gif                         this.ClientSize = new System.Drawing.Size(728, 494);
InBlock.gif                         this.Name = "Form1";
InBlock.gif                         this.Text = "Form1";
InBlock.gif
InBlock.gif                }
InBlock.gif                #endregion
InBlock.gif
InBlock.gif                /** <summary>
InBlock.gif                 /// 应用程序的主入口点。
InBlock.gif                 /// </summary>
InBlock.gif                [STAThread]
InBlock.gif                 static void Main()    
InBlock.gif                ...{
InBlock.gif                        Application.Run( new Form1());
InBlock.gif                }
InBlock.gif
InBlock.gif                 protected override void OnPaint(PaintEventArgs e)
InBlock.gif                ...{
InBlock.gif                        Graphics g=e.Graphics;
InBlock.gif                         //定义一个线性梯度刷
InBlock.gif                        LinearGradientBrush lGBrush= new LinearGradientBrush(    
InBlock.gif                                 new Point(0, 10),    
InBlock.gif                                 new Point(150, 10),
InBlock.gif                                Color.FromArgb(255, 255, 0, 0),
InBlock.gif                                Color.FromArgb(255, 0, 255, 0));
InBlock.gif                        Pen pen= new Pen(lGBrush);
InBlock.gif                         //用线性梯度刷效果的笔绘制一条直线段,填充一个矩形
InBlock.gif                        g.DrawLine(pen, 10, 130, 500, 130);
InBlock.gif                        g.FillRectangle(lGBrush, 50, 150, 370, 30);
InBlock.gif
InBlock.gif                         //定义路径并添加一个椭圆
InBlock.gif                        GraphicsPath gp= new GraphicsPath();
InBlock.gif                        gp.AddEllipse(10, 10, 200, 100);
InBlock.gif                         //用该路径定义路径梯度刷
InBlock.gif                        PathGradientBrush brush= new PathGradientBrush(gp);
InBlock.gif                         //颜色数组
InBlock.gif                        Color[] colors= ...{
InBlock.gif                                        Color.FromArgb(255, 255, 0, 0),
InBlock.gif                                        Color.FromArgb(255, 100, 100, 100),
InBlock.gif                                        Color.FromArgb(255, 0, 255, 0),
InBlock.gif                                        Color.FromArgb(255, 0, 0, 255)};
InBlock.gif                         //定义颜色渐变比率
InBlock.gif                         float[] r = ...{
InBlock.gif                                        0.0F,
InBlock.gif                                        0.3F,
InBlock.gif                                        0.6F,
InBlock.gif                                        1.0F};
InBlock.gif                        ColorBlend blend= new ColorBlend();
InBlock.gif                        blend.Colors = colors;
InBlock.gif                        blend.Positions = r;
InBlock.gif                        brush.InterpolationColors = blend;
InBlock.gif                         //在椭圆外填充一个矩形
InBlock.gif                        g.FillRectangle(brush, 0, 0, 210, 110);
InBlock.gif
InBlock.gif                         //用添加了椭圆的路径定义第二个路径梯度刷
InBlock.gif                        GraphicsPath gp2= new GraphicsPath();
InBlock.gif                        gp2.AddEllipse(300, 0, 200, 100);
InBlock.gif                        PathGradientBrush brush2= new PathGradientBrush(gp2);
InBlock.gif                         //设置中心点的位置和颜色
InBlock.gif                        brush2.CenterPoint = new PointF(450, 50);
InBlock.gif                        brush2.CenterColor = Color.FromArgb(255, 0, 255, 0);
InBlock.gif                         //设置边界颜色
InBlock.gif                        Color[] colors2 = ...{Color.FromArgb(255, 255, 0, 0)};
InBlock.gif                        brush2.SurroundColors = colors2;
InBlock.gif                         //用第二个梯度刷填充椭圆
InBlock.gif                        g.FillEllipse(brush2, 300, 0, 200, 100);
InBlock.gif                }
InBlock.gif        }
InBlock.gif}