【问题标题】:C# - Setting Custom Colors in a Color Dialog using RGB ValuesC# - 使用 RGB 值在颜色对话框中设置自定义颜色
【发布时间】:2015-02-27 05:08:36
【问题描述】:

我认为使用 RGB 设置自定义颜色将是默认方法,但似乎并非如此。 This stackoverflow answer 在使用命名颜色(例如红色或蓝色)或十六进制值来设置自定义颜色方面非常有帮助,但对于我正在处理的项目,最好使用 RGB 值设置颜色。或者,有时 HSL 值可能会有所帮助。

如果能帮助我展示如何使用 RGB(也可能是 HSL)设置 colorDialog 自定义颜色,我将不胜感激。

谢谢

【问题讨论】:

    标签: c# colors rgb hsl colordialog


    【解决方案1】:

    如果您使用与链接到的问题相同的方法,您应该可以使用静态Color.FromArgb 方法。我从来没有使用过ColorDialog 控件,所以这只是一个猜测。

    int r = 25; // or whatever
    int g = 34;
    int b = 43;
    
    colorDialog1.CustomColors = new int[] { 
                                            ColorTranslator.ToOle(Color.FromArgb(r, g, b))
                                          };
    colorDialog1.ShowDialog(); 
    

    对于 HSL,您可以参考this other answer。基本上,据我所知,您必须自己进行转换。

    【讨论】:

    • 看起来应该就这么简单。不幸的是,使用 Color.FromArgb(或 ColorTranslator.FromArgb)无法编译。
    • 现在听起来可以修复了。什么是编译器错误?
    • 多个错误:1. Color(System.Drawing.Color)' 是一个“方法”,在给定的上下文中无效 2. 名称“b”在当前上下文中不存在3.当前上下文中不存在名称'g' 4.当前上下文中不存在名称'r'从Color切换到ColorTranslator时,第一个错误替换为:1.'System.Drawing.ColorTranslator ' 不包含 'FromArgb' 的定义 其他 3 个错误仍然发生。我不认为这是一个可修复的编译问题。但是,必须有办法做到这一点。
    • @AARRGHHHH 听起来您有一个名称为Color 的方法?尝试使用 System.Drawing.Color 完全限定该名称。至于其他的,这很明确——您需要更改传递给方法的参数,或者定义我在某处使用的参数。
    • 我不认为定义 r g b 参数会改变任何东西,因为它们是不存在的方法的参数。不幸的是,Color 和 ColorTranslator 没有 FromArgb(或 FromRgb)方法。
    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多