0

文字列 (「赤」のようなもの) を使用して、バックエンドでテキストブロックの前景を設定しようとしています。

私はこれを試しました:

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

ただし、認識していないようですBrushConvert()。入れましSystem.Windows.Mediaたが、まだ見つかりません。

これを行う別の方法はありますか?

4

1 に答える 1

1

BrushConverterWindows 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必要に応じて名前空間全体を入力するか、名前を変更してください。

于 2013-06-23T07:22:36.017 に答える