我需要根据颜色的十六进制调色板代码获取相应的颜色名称。
我试过了:
brush = (new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromArgb(dialog.Color.A, dialog.Color.R, dialog.Color.G, dialog.Color.B)));
TheColor = Convert.ToString(brush); //here i get the hexadecimal only
例如。红色,青色,蓝色的东西。
答案 0 :(得分:4)
在.NET中,存在“已知颜色”的概念。
public string ColorName(Color toCheck)
{
string result = "";
foreach (KnownColor known in Enum.GetValues(typeof(KnownColor)))
{
Color c = Color.FromKnownColor(kc);
if (toCheck.ToArgb() == known.ToArgb())
{
result = known.Name;
}
}
return result;
}
显然,这无法识别您所知道的任何颜色,只能识别.NET框架中预定义的颜色。
否则你将不得不编写自己的识别器,这应该很容易做到,例如使用Dictionary<string, string>
,其中键是RGB值,值将是名称。