吉吉于

C#每天抄一点(11):渐变颜色

MSDN参考:
1.Rectangle 构造函数 (Int32, Int32, Int32, Int32
public Rectangle(
int x,
int y,
int width,
int height
)
x
类型:System.Int32
矩形左上角的 x 坐标。
y
类型:System.Int32
矩形左上角的 y 坐标。
width
类型:System.Int32
矩形的宽度。
height
类型:System.Int32
矩形的高度。
2.Color.FromArgb 方法 (Int32, Color)
从指定的 Color 结构创建 Color 结构,但要使用新指定的 alpha 值。尽管此方法允许为 alpha 值传递 32 位值,但该值仅限于 8 位。

Color red = Color.FromArgb(255, 0, 0);
    Color green = Color.FromArgb(0, 255, 0);
    Color blue = Color.FromArgb(0, 0, 255);

从三个颜色分量值(红色、绿色、蓝色)创建 Color 结构。创建出三个 Color 结构,每一个都表示一个基本色。

循环访问 alpha 值范围,同时更改颜色的 alpha 值。

在每次迭代期间,会将画笔颜色设置为修改后的颜色,并绘制一个矩形以显示该颜色。

为每种基本色重复步骤 2 和步骤 3。

alpha 值从来不会完全不透明,并且矩形会重叠以便获得颜色组合效果。

01 /*
02 * 由SharpDevelop创建。
03 * 用户: Lazynight
04 * 日期: 2011/10/13
05 * 时间: 6:54
06 *
07 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
08 */
09 using System;
10 using System.Collections.Generic;
11 using System.Drawing;
12 using System.Windows.Forms;
13
14 namespace Lazy11_颜色渐变
15 {
16
17     public partial class MainForm : Form
18     {
19         public MainForm()
20         {
21             InitializeComponent();
22         }
23         protected override void OnPaintBackground(PaintEventArgs e)
24         {
25             int y,dy;                                    //定义变量
26             y=this.ClientRectangle.Location.Y;
27             dy=this.ClientRectangle.Height/256;
28             for(int i=255;i>=;i–)                    //用for循环渐变窗体背景
29             {
30                 Color L_color =new Color();          // 定义颜色对象实例
31                 L_color=Color.FromArgb(,i,255); //调用color的fromargb方法
32                 SolidBrush L_brush = new SolidBrush(L_color);             //定义画笔颜色
33                 Pen L_pen=new Pen(L_brush,1);                             //定义画笔
34                 e.Graphics.DrawRectangle(L_pen,this.ClientRectangle.X,y,this.Width,y+dy);//绘制矩形
35                 y=y+dy;
36             }
37
38         }
39
40         private void Main_DoubleClick(object sender,EventArgs e)
41         {
42             this.Close();
43             Application.Exit();
44         }
45     }
46 }

下载源码

转载请注明:于哲的博客 » C#每天抄一点(11):渐变颜色