【问题标题】:Converting string with color name to color"id"将带有颜色名称的字符串转换为颜色“id”
【发布时间】:2012-10-13 13:43:18
【问题描述】:

我有

public String colorid = "Blue";

  Sbrush = new SolidBrush(Color.Convert.ToInt32(colorid));

我希望能够在其他地方定义 colorid,这就是我编写这样的 SolidBrush 代码的原因。现在这不起作用,如果有人可以帮助我,我将不胜感激

【问题讨论】:

  • 您看到的行为是什么?它怎么不工作?你还尝试了什么?
  • 我从SolidBrush 猜测这是 WPF - 为了清楚起见,您应该这样标记它。
  • @DanPuzey,SolidBrush 是 GDI+。在 WPF 中是 SolidColorBrush
  • @DrewNoakes:原来如此——抱歉!不过,GDI 标签还是很有用的 :-)

标签: c# winforms colors gdi+


【解决方案1】:

使用名称创建颜色

Color.FromName("Blue")

【讨论】:

  • 太棒了!还有一件事,我怎样才能公开 String colorid = "Blue"; (在 Snake 类中)可在 Form1 中访问,如下所示:Snake.colorid = "Black";
  • 我按照你说的做了,现在有 public static readonly String colorid = "Black";但这不起作用:/
  • 我想给Form1中的colorid(其他颜色)赋值其他值
  • 为什么不将其创建为一个新问题。
  • @MatthiasVerhoeven 抱歉,我以为您希望它是只读的。如果要更改颜色值,可以使用public static string ColorId
【解决方案2】:

这种方式同时支持颜色名称和html颜色:

string nm = "Blue"; // or f.ex. "#0000ff"

if (nm.StartsWith("#")) {
    return ColorTranslator.FromHtml(nm);
}
else {
    return Color.FromName(nm);
}

【讨论】:

  • +1 OP 没有要求 html 颜色,但我不知道 ColorTranslator
  • 谢谢,这会很有帮助!
猜你喜欢
  • 1970-01-01
  • 2017-04-14
  • 2018-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
  • 2012-11-01
  • 2019-07-28
相关资源
最近更新 更多