C#每天抄一点(11):渐变颜色
12 Oct 2011MSDN参考:
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 }
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):渐变颜色