从字符串中获取SolidColorBrush

本文关键字:SolidColorBrush 获取 字符串 | 更新日期: 2023-09-27 18:19:28

我正试图使用字符串(类似于"红色")在后端设置文本块的前景

我试过这个:

ColorText.Foreground = new BrushConverter().ConvertFromString(colors[color2].ToString());

然而,它似乎没有识别BrushConvert()。我已经包含了System.Windows.Media,但仍然找不到它。

还有别的办法吗?

从字符串中获取SolidColorBrush

BrushConverter在windows phone中不可用。你可以建立一个颜色字典,然后用helper方法将你想要的颜色传递给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类型,所以如果需要,请在整个命名空间中键入或重命名它。