我正在尝试使用字符串(例如“Red”)在后端设置文本块的前景
我试过这个:
ColorText.Foreground = new BrushConverter().ConvertFromString(colors[color2].ToString());
但是,它似乎并没有识别出来BrushConvert()
。我已经包含System.Windows.Media
了,但仍然找不到。
还有其他方法可以做到这一点吗?
我正在尝试使用字符串(例如“Red”)在后端设置文本块的前景
我试过这个:
ColorText.Foreground = new BrushConverter().ConvertFromString(colors[color2].ToString());
但是,它似乎并没有识别出来BrushConvert()
。我已经包含System.Windows.Media
了,但仍然找不到。
还有其他方法可以做到这一点吗?
BrushConverter
在 windows phone 中不可用。您可以建立一个颜色字典,然后SolidColorBrush
使用辅助方法将您想要的颜色传递给 ctor。
public static class ColorsHelper {
private static readonly Dictionary<string, Color> dict =
typeof(Colors).GetProperties(BindingFlags.Public | BindingFlags.Static)
.Where(prop => prop.PropertyType == typeof(Color))
.ToDictionary(prop => prop.Name, prop => (Color)prop.GetValue(null, null));
public static Color FromName(string name) {
return dict[name];
}
}
ColorText.Foreground = new SolidColorBrush(ColorsHelper.FromName("Red"));
确保上面的字典使用System.Windows.Media.Color
结构和System.Windows.Media.Colors
类。我相信周围有几种Color
类型,因此如有必要,请在整个命名空间中键入或重命名。