Jon*_*ski 1 c# silverlight-3.0
我有以下内容:
Color color = Colors.Red;
color.ToString();
Run Code Online (Sandbox Code Playgroud)
以十六进制表示形式输出.有没有办法输出"红色"?
奖金指向任何人提供适用于不同文化的解决方案(即输出西班牙语的"Rojo").
您可能需要使用Reflection手动滚动自己的解决方案.这是我的第一次拍摄:
public static string GetColorName(this System.Windows.Media.Color color)
{
Type colors = typeof(System.Windows.Media.Colors);
foreach(var prop in colors.GetProperties())
{
if(((System.Windows.Media.Color)prop.GetValue(null, null)) == color)
return prop.Name;
}
throw new Exception("The provided Color is not named.");
}
Run Code Online (Sandbox Code Playgroud)
请记住,这绝不是有效的,但从文档中我可以看到它是唯一的方法.