【发布时间】:2020-08-12 14:31:39
【问题描述】:
我正在研究一些色调,为此我创建了一些这样的颜色自定义属性..
public struct StaticColors
{
//White Shades
public static Color White = ColorTranslator.FromHtml("#ecf0f1");
public static Color White_1 = ColorTranslator.FromHtml("#c5d1d4");
public static Color White_2 = ColorTranslator.FromHtml("#a8babf");
//Red Shades
public static Color Red = ColorTranslator.FromHtml("#db2828");
public static Color Red_1 = ColorTranslator.FromHtml("#a41b1b");
public static Color Red_2 = ColorTranslator.FromHtml("#781414");
}
现在我想要任何颜色的字符串...
var ColorName = StaticColors.White.ToString()
然后我需要 ColorName 变量中的“White”,这样我就可以与其他人连接,但我得到的是 RGBA 值的字符串形式。
谁能帮我把颜色转换成字符串?
【问题讨论】:
-
您必须编写自己的方法将 Color 转换为字符串,因为没有内置代码可能知道您要调用值为
a8babf的颜色“White_2”。 -
我只需要将颜色转换为字符串,例如 //public static Color White ---- 然后我需要具有相同属性名称的字符串数据类型中的颜色数据类型。但是不知道怎么弄。
-
当您这样做时,您将获得
Color类的ToString实现。如果要获取StaticColors类的字段名称,则需要使用反射。或者,您可以将Color包装在您自己的自定义类中,该类具有"Name"属性和"Color"属性。