我有一个WinForm应用程序,其中的C#代码分配颜色:
grid.Styles.Highlight.BackColor = Properties.Settings.Default.TrueDBGridSelectedStyleBackColor;
如果我查找它的定义位置,我会在“设置”中找到它。设置定义如下:
<Setting Name="C1TabPageTabBackColorSelected" Type="System.Drawing.Color" Scope="Application">
<Value Profile="(Default)">Highlight</Value>
</Setting>
请注意这里的Highlight一词。这个文件中的其他颜色是用颜色名称或rgb值定义的,但是Highlight是什么意思呢?
如果我在调试器中停止在分配它的C#代码上并查看
Properties.Settings.Default.TrueDBGridSelectedStyleBackColor
我看到“{Name=突出显示,ARGB=(255,0,120,215)}”系统.绘图.颜色
如果我在ARGB中指定相同的颜色,如下所示:
grid.Styles.Highlight.BackColor = Color.FromArgb(255, 0, 120, 215);
我得到了一个不同的颜色-深得多的蓝色,在结果控件中没有红色组件。
没有颜色。高亮常量就像有颜色一样。比如白色。这是怎么回事?高亮颜色有什么特殊的行为吗?
它是否从一些操作系统颜色中得到一个颜色,但是因为名字的原因被控件覆盖了?我找不到任何这样说的文档。
1条答案
按热度按时间omjgkv6w1#
这很可能是SystemColors.Highlight Property。它不是指特定的颜色,而是指当前Windows主题的高亮颜色,用于所选项目的背景,例如列表框中的背景。
正如@HansPassant所指出的,
Highlight
也是KnownColor Enum常量之一,你可以使用Color.FromKnownColor(KnownColor) Method来获取与这些枚举常量之一相对应的颜色。