如何在C#颜色对话框中指定可以拾取的颜色

本文关键字:颜色 对话框 | 更新日期: 2023-09-27 17:59:22

在Visual C#.NET中:

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

还有,有没有一种方法可以"停靠"颜色对话框,这样它就不会以新的形式打开,而是保持在我的主形式中?

如何在C#颜色对话框中指定可以拾取的颜色

这会是你想要的吗?

    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;
    }

我认为您无法停靠颜色对话框。

以下是本例中ColorDialog控件的一些有用属性。但没有一个能满足你的要求。我认为在你的情况下,你必须创建自己的对话框与自定义的颜色列表。

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

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

FullOpen-指定用于拾取自定义颜色的零件是否自动打开。

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