C# 如何将System.Drawing.Brush转换为字符串
我找不到任何正确的解决办法C# 如何将System.Drawing.Brush转换为字符串,c#,C#,我找不到任何正确的解决办法 string colorName = ...converting... Brushes.Brown; So colorName should have 'Brown' 有可能吗?看来我找到了一个办法 public string GetColorName(Brush brush) { string name = "Unknown"; Color c = new Pen(brush).Color;
string colorName = ...converting... Brushes.Brown;
So colorName should have 'Brown'
有可能吗?看来我找到了一个办法
public string GetColorName(Brush brush)
{
string name = "Unknown";
Color c = new Pen(brush).Color;
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
Color known = Color.FromKnownColor(kc);
if (c.ToArgb() == known.ToArgb())
{
name = known.Name;
break;
}
}
return name;
}
看来我找到了一个办法
public string GetColorName(Brush brush)
{
string name = "Unknown";
Color c = new Pen(brush).Color;
foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
{
Color known = Color.FromKnownColor(kc);
if (c.ToArgb() == known.ToArgb())
{
name = known.Name;
break;
}
}
return name;
}
要获得所需的结果,您可以使用:
string colorName = nameof(Brushes.Brown);
现在
colorName
应该具有值'Brown'
要获得所需的结果,可以使用:
string colorName = nameof(Brushes.Brown);
现在
colorName
应该有值'Brown'
关于我能想到的唯一方法是使用反射来循环遍历System.Drawing.brush
类的所有静态属性,并测试每个属性的值与您试图查找其名称的笔刷之间的相等性。如何nameof(brusks.Brown)
?SolidBrush b=brusks.AliceBlue作为SolidBrush;b、 Color.name关于我能想到的唯一方法是使用反射来循环遍历System.Drawing.brush
类的所有静态属性,并测试每个属性的值与您试图查找其名称的笔刷之间的相等性。那么nameof(brush.Brown)呢
?SolidBrush b=刷子。AliceBlue作为SolidBrush;b、 颜色。名字