如何区分“黑色”和“ActiveCaptionText”
Posted
技术标签:
【中文标题】如何区分“黑色”和“ActiveCaptionText”【英文标题】:How to differentiate between "Black" and "ActiveCaptionText" 【发布时间】:2021-12-24 17:57:39 【问题描述】:void Main()
(Color.FromName("Black").ToArgb() == Color.FromName("ActiveCaptionText").ToArgb()).Dump();
// TRUE ^
这是在 LINQPad 中运行的一段代码。 有没有办法区分这两种颜色?
上下文:我收到了int
表示中的颜色。例如Black
是-16777216
。我使用来自System.Drawing
命名空间KnownColor
的枚举来获取它的名称。
【问题讨论】:
您可以使用IsSystemColor
属性来区分它们。 “黑色”不是系统颜色,“ActiveCaptionText”是。或者不比较 ToArgb()
值,而是比较 Color
结构。
【参考方案1】:
如果要获取给定颜色值的名称,请使用ColorTranslator
类,该类使用内部已知颜色表来设置Color
结构的Name
属性.
示例
Console.WriteLine(Color.FromArgb(-16777216).Name);
// Prints: ff000000
// Whereas...
Console.WriteLine(ColorTranslator.FromWin32(-16777216).Name);
// Prints: Black
【讨论】:
以上是关于如何区分“黑色”和“ActiveCaptionText”的主要内容,如果未能解决你的问题,请参考以下文章