为什么DarkGray比Gray更轻?

简单的好奇心在这里,带着一些实际的担忧,因为偶尔会被抓住。

Color.DarkGray是如何比Color.Gray轻?

维基百科有关于这个问题的一些信息 。 这听起来像很多命名的颜色定义来自X Windows系统。 在X上,“灰色”实际上更接近“silverlight”。 但是,W3C将Gray定义为更合适的RGB 50%。

这里有一些关于这个主题的维基百科 :

也许最不寻常的颜色冲突是“灰色”的情况。 在HTML中,“灰色”专门用于127,127,127。 然而,在X11中,“灰色”分配给了190,190,190(75%),接近于HTML的“silverlight”,在(211,211,211)处有“浅灰色”,在(169,169,169)处有“暗灰色”。 这导致HTML的“灰度”为50%,实际上比“暗灰色”显着更黑,达到66%。 W3C也定义了一个等于X11的“绿色”的颜色,但将其称为“石灰”。

W3C 颜色关键字:

 DimGray '#696969' (105,105,105) Gray '#808080' (128,128,128) DarkGray '#A9A9A9' (169,169,169) //equal to X11 DarkGray Silver '#C0C0C0' (192,192,192) //close to X11 Gray (190,190,190) LightGray '#D3D3D3' (211,211,211) //equal to X11 LightGray Gainsboro '#DCDCDC' (220,220,220) 

我想引用Tim Sneath的讨论 ,

这些颜色实际上并不是源自于HTML ,它们的date比在UNIX系统上产生的X Window系统还要更进一步。 HTML规范定义了映射到EGA调色板中基本16种颜色的16种指定颜色,但最早的浏览器(如Mosaic)也支持任何其他X11指定颜色,基于它们在X上定义的颜色表示。不幸的是,原来十六个指定的颜色有不同的X11等价物的表示,例如Green在这个颜色中用X11表示,而在HTML中用这个颜色表示。 不幸的是,Grey被定义为HTML中的#808080,但是DarkGray被表示为#A9A9A9,这意味着他们是错误的。 由于WPF允许使用与HTML相同的命名颜色来实现兼容性,所以结果是相同的特性得以延续。 (您可以在维基百科find更多关于X11颜色名称及其表示的更多信息)。

这就是为什么作者还指出,最好使用hex或scRGB来表示颜色。

因此,我的build议是在一般情况下尽可能使用hex或scRGB颜色表示,否则您可能会惊讶于您select的颜色与您的期望不符。

W3C灰色
九个分配的名称,其中R,G和B值在数值上相等:

在这里输入图像说明