我有一个用户控件,我将一个字符串绑定到 xaml 路径。这使我可以选择“黑色”“蓝色”等颜色,并使用十六进制数字作为字符串来选择颜色。
但我无法在 C# 代码中使用相同的字符串。如下例所示:
SolidColorBrush blackBrush = new SolidColorBrush();
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = shieldGearModelRec.Gear.Color;
Run Code Online (Sandbox Code Playgroud)
所以最后一个字符串shieldGearModelRec.Gear.Color是我在 XAML 中用作绑定的字符串。它可以将字符串转换为颜色名称或六进制描述中的颜色。但是我怎么能在后面的代码中做到这一点,也就是在 c# 中?
我的搜索在 C# 中找到了诸如将字符串转换为颜色之类的东西 ,但这在 Windows 手机中是不可能的。有没有办法做到这一点?
一个主意
我是否需要创建一个转换器来读取字符串,查找 # 以确定它是六边形还是颜色名称,然后使用六边形转换器来查找 rgb,以及名称的开关?这似乎不是最聪明的解决方案
在 .NET 中,有一个类可以将文本 HTML 颜色名称转换为颜色(在本例中为“红色”):
Color col=(Color)ColorConverter.ConvertFromString("Red");
Brush brush=new SolidColorBrush(col);
Run Code Online (Sandbox Code Playgroud)
(我从这里获取:Cast Color Name to SolidColorBrush)
这几乎适用于维基百科上可以找到的所有颜色
是否有一个等效的类/库Windows Store Apps可以做同样的事情?