【问题标题】:How do I specify what colors can be picked in a C# ColorDialog?如何指定可以在 C# ColorDialog 中选择哪些颜色?
【发布时间】:2015-07-17 07:14:45
【问题描述】:

在 Visual C#.NET 中:

我希望能够制作一个颜色对话框,并拥有它以便用户只能选择几种颜色(特别是可用于命令提示符/批处理文件的颜色)。这是怎么做到的?如何限制用户可以选择的颜色?

另外,有没有办法“停靠”颜色对话框,这样它就不会以新形式打开,而是保留在我的主窗体中?

【问题讨论】:

    标签: c# .net winforms colordialog


    【解决方案1】:

    这就是你想要的吗?

        private void ShowColorDialog()
        {
            ColorDialog cd = new ColorDialog();
            cd.CustomColors = new int[] { ToInt(Color.Red), ToInt(Color.Blue), ToInt(Color.YellowGreen) };
            cd.SolidColorOnly = true;
            cd.ShowDialog();
        }
    
        static int ToInt(Color c)
        {
            return c.R + c.G * 0x100 + c.B * 0x10000;
        }
    

    我认为你不能停靠颜色对话框。

    【讨论】:

    • 不就是设置额外的自定义颜色吗?我认为它不会抑制标准颜色的显示或选择。
    • @itowlson:哦,好吧,忘了一块:编辑问题只显示纯色!
    【解决方案2】:

    以下是您的案例中 ColorDialog 控件的一些有用属性。但是它们都不能满足您的要求。我认为在您的情况下,您必须使用自定义颜色列表创建自己的对话框。

    AllowFullOpen - 指定用户是否可以选择自定义颜色。

    CustomColors - 用户选择的自定义颜色的集合。

    FullOpen - 指定用于选择自定义颜色的部分是否自动打开。

    用户可以创建自己的一组自定义颜色。这些颜色包含在由创建颜色所需的 ARGB 分量(alpha、红色、绿色和蓝色)值组成的 Int32 中。仅当 AllowFullOpen 设置为 true 时才能定义自定义颜色。因此,无法设置 CustomColors 并限制其他颜色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多