【问题标题】:C# color value from name来自名称的 C# 颜色值
【发布时间】:2011-06-23 08:43:51
【问题描述】:

我需要根据 C# 中的名称获取颜色的 RGB 值。我正在尝试使用预定义的 KnownColors 枚举,但不知道如何获取该值。

有什么帮助吗?

谢谢。

【问题讨论】:

    标签: c# enums colors


    【解决方案1】:

    使用FromKnownColor:

    Color blue = Color.FromKnownColor(KnownColor.Blue);
    

    然后blue.Rblue.Gblue.B 用于 RGB 值。


    或者,如果您只想要 RGB 颜色的 int 值,您可以这样做:

    int blueRgb = Color.FromKnownColor(KnownColor.Blue).ToArgb();
    

    【讨论】:

    • Toargb 返回一个 32 位整数,而不是他想要的。编辑:我不认为。
    • 问题是我在字符串中有颜色名称
    • @baruch:在这种情况下,Frederik Gheysels 的回答恰到好处 :)
    【解决方案2】:

    Color 类有一些有趣的静态方法:

    Color.FromName ("Red").ToArgb()
    

    除此之外,还有一些属性,例如:

    var c = Color.FromName ("Red"); // Or use Color.FromKnownColor (KnownColor.Red) 
    
    Console.WriteLine (String.Format ("RGB: {0} {1} {2}", c.R, c.G, c.B);
    

    【讨论】:

    • FromKnownColor 更有意义,因为他说这就是他正在使用的。
    【解决方案3】:

    使用Color.FromKnownColor,然后使用Color.RColor.GColor.B 访问RGB 值。

    【讨论】:

      【解决方案4】:
      Color clr = FromKnownColor(System.Drawing.KnownColor.Blue);
      string.Format("R:{0}, G:{1}, B:{2}" clr.R, clr.G, clr.B);
      

      查看Out

      【讨论】:

        【解决方案5】:

        enter code here你可以的

          int r = Color.FromName("Purple").ToArgb();
             //Or 
             int r1 = Color.FromKnownColor(KnownColor.Purple).ToArgb();
        

        Color.FromName 和 Color.FromKnownColor 将返回 Color 对象,如果需要,它具有 RedGreenBlue 组件的属性。

        【讨论】:

          【解决方案6】:
          Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red");
          

          【讨论】:

            猜你喜欢
            • 2014-09-01
            • 1970-01-01
            • 1970-01-01
            • 2018-11-14
            • 1970-01-01
            • 1970-01-01
            • 2021-04-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多