C#在WinForm中的颜色设置
前言
在项目中遇见改变系统控件背景颜色后,找不到原本的对应颜色,故做进一步了解与记录。
环境:VS2019
语言:C#
项目:Windows窗体(.net FrameWork)
一、说明
二、自定义
以RGB三原色构成,0-255表示对应原色的程度。(红,绿,蓝),(0,0,0)黑色,(255,255,255)白色。在设置时直接键入相应数值两两用,隔开。
代码中修改如下:
this.BackColor = Color.FromArgb(255, 255, 255);
三.web
web选项卡中提供了一些好看的预定义的颜色选择。在设置时可直接下拉选择。
代码中修改如下:
this.BackColor = Color.Lime;
系统中预定义了丰富的颜色,详细可见:
System.Drawing.Color类
四.系统
系统控件颜色在设置时也可通过下拉直接选择。
但在代码中修改时较为特殊:
this.BackColor = System.Drawing.SystemColors.Control;
此处所用到的类是System.Drawing.SystemColors,其中定义了部分系统颜色。
PS(深入了解一下Color类)
Color中的部分函数
1.FromArgb
//
// 摘要:
// 基于指定的 8 位颜色值(红色、绿色和蓝色)创建 System.Drawing.Color 结构。 隐式的 alpha 值为 255(完全不透明)。 尽管此方法允许为每个颜色组件传递
// 32 位值,但每个组件的值仅限于 8 位。
//
// 参数:
// red:
// 新 System.Drawing.Color 的红色组件值。 有效值为 0 到 255。
//
// green:
// 新 System.Drawing.Color 的绿色组件值。 有效值为 0 到 255。
//
// blue:
// 新 System.Drawing.Color 的蓝色组件值。 有效值为 0 到 255。
//
// 返回结果:
// 此方法创建的 System.Drawing.Color。
//
// 异常:
// T:System.ArgumentException:
// red、green 或 blue 小于 0 或大于 255。
public static Color FromArgb(int red, int green, int blue);
正常的通过设置RGB三原色获取Colo类
//
// 摘要:
// 从指定的 System.Drawing.Color 结构创建 System.Drawing.Color 结构,但要使用新指定的 alpha 值。 尽管此方法允许为
// alpha 值传递 32 位值,但该值仅限于 8 位。
//
// 参数:
// alpha:
// 新 System.Drawing.Color 的 alpha 值。 有效值为 0 到 255。
//
// baseColor:
// 从中创建新 System.Drawing.Color 的 System.Drawing.Color。
//
// 返回结果:
// 此方法创建的 System.Drawing.Color。
//
// 异常:
// T:System.ArgumentException:
// alpha 小于 0 或大于 255。
public static Color FromArgb(int alpha, Color baseColor);
public static Color FromArgb(int alpha, int red, int green, int blue);
alpha是定义颜色的透明度(0-255)(在使用是并不是所有控件都支持透明度功能)
//
// 摘要:
// 基于一个 32 位 ARGB 值创建 System.Drawing.Color 结构。
//
// 参数:
// argb:
// 用于指定 32 位 ARGB 值的值。
//
// 返回结果:
// 此方法创建的 System.Drawing.Color 结构。
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
public static Color FromArgb(int argb);
32位ARGB值是整合了透明度(0-255)红(0-255)绿(0-255)蓝(0-255),每个组成部分可转换成8位二进制数,按顺序组合构成32位二进制或8位16进制
例如:
透明度(255)红(255)绿(255)蓝(255)ARGB = FF FF FF FF = -1
透明度(0)红(255)绿(255)蓝(255) ARGB = 00 FF FF FF = 16777215