winforms 系统.绘图.颜色名为Highlight?它是什么?用于WinForm

ndasle7k  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(191)

我有一个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);

我得到了一个不同的颜色-深得多的蓝色,在结果控件中没有红色组件。
没有颜色。高亮常量就像有颜色一样。比如白色。这是怎么回事?高亮颜色有什么特殊的行为吗?
它是否从一些操作系统颜色中得到一个颜色,但是因为名字的原因被控件覆盖了?我找不到任何这样说的文档。

omjgkv6w

omjgkv6w1#

这很可能是SystemColors.Highlight Property。它不是指特定的颜色,而是指当前Windows主题的高亮颜色,用于所选项目的背景,例如列表框中的背景。
正如@HansPassant所指出的,Highlight也是KnownColor Enum常量之一,你可以使用Color.FromKnownColor(KnownColor) Method来获取与这些枚举常量之一相对应的颜色。

相关问题