C#在WinForm中的颜色设置

C#在WinForm中的颜色设置

  • 前言
  • 一、说明
  • 二、自定义
  • 三.web
  • 四.系统
  • PS(深入了解一下Color类)
    • Color中的部分函数
      • 1.FromArgb


前言

在项目中遇见改变系统控件背景颜色后,找不到原本的对应颜色,故做进一步了解与记录。
环境:VS2019
语言:C#
项目:Windows窗体(.net FrameWork)


一、说明

C#在WinForm中的颜色设置_第1张图片

图(1) 窗体背景色设置界面
如上图(1)显示控件背景色的设置方式1.自定义;2.web;3.系统

二、自定义

在这里插入图片描述
以RGB三原色构成,0-255表示对应原色的程度。(红,绿,蓝),(0,0,0)黑色,(255,255,255)白色。在设置时直接键入相应数值两两用,隔开。
代码中修改如下:

this.BackColor = Color.FromArgb(255, 255, 255);

三.web

C#在WinForm中的颜色设置_第2张图片
web选项卡中提供了一些好看的预定义的颜色选择。在设置时可直接下拉选择。
代码中修改如下:

this.BackColor = Color.Lime;

系统中预定义了丰富的颜色,详细可见:

System.Drawing.Color类

四.系统

C#在WinForm中的颜色设置_第3张图片
系统控件颜色在设置时也可通过下拉直接选择。
但在代码中修改时较为特殊

            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

你可能感兴趣的:(#,C#Winform,c#,visual,studio,开发语言)