如何解决如何在C#Windows应用程序中获取颜色的颜色名称字符串
我正在开发一些颜色,因为我已经创建了一些自定义颜色的属性。
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变量中使用“白色”,以便可以与其他字符串连接,但是我得到的是RGBA值的字符串形式。
有人可以帮助我将Color转换为字符串吗?
解决方法
执行此操作的一种方法是使用nameof
表达式,该表达式返回成员的字符串名称:
var ColorName = nameof(StaticColors.White);
如果希望Name
成为字段的属性,则另一种方法是将Color
类包装在您自己的自定义结构中,并为其提供Name
属性:
public struct StaticColor
{
public string Name { get; }
public Color Color { get; }
public StaticColor(string name,Color color)
{
Name = name;
Color = color;
}
}
然后在您的StaticColors
结构中,您可以拥有这种类型的字段,而不是Color
:
public struct StaticColors
{
//White Shades
public static StaticColor White =
new StaticColor("White",ColorTranslator.FromHtml("#ecf0f1"));
public static StaticColor White_1 =
new StaticColor("White_1",ColorTranslator.FromHtml("#c5d1d4"));
public static StaticColor White_2 =
new StaticColor("White_2",ColorTranslator.FromHtml("#a8babf"));
//Red Shades
public static StaticColor Red =
new StaticColor("Red",ColorTranslator.FromHtml("#db2828"));
public static StaticColor Red_1 =
new StaticColor("Red_1",ColorTranslator.FromHtml("#a41b1b"));
public static StaticColor Red_2 =
new StaticColor("Red_2",ColorTranslator.FromHtml("#781414"));
}
现在您可以访问任何属性的Color
或Name
:
var colorName = StaticColors.White.Name;
var colorColor = StaticColors.White.Color;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。