C#在WinForm中的颜色设置


前言

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


一、说明

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

二、自定义

在这里插入图片描述
以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

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值