Как мне указать, какие цвета можно выбрать в C # ColorDialog? - PullRequest
1 голос
/ 18 июня 2011

В Visual C # .NET:

Я хочу, чтобы можно было создать диалоговое окно цветов, чтобы пользователь мог выбрать только несколько цветов (в частности, те, которые доступны для командной строки / пакетных файлов). Как это сделать? Как я могу ограничить, какие цвета может выбрать пользователь?

Кроме того, есть ли способ «закрепить» цветовой диалог, чтобы он не открывался в новой форме, а оставался в моей основной форме?

Ответы [ 2 ]

4 голосов
/ 18 июня 2011

Может ли это быть тем, что вы хотите?

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

Я думаю, вы не можете закрепить цветовой диалог.

0 голосов
/ 18 июня 2011

Ниже приведены некоторые полезные свойства элемента управления ColorDialog в вашем случае.Но ни один из них не удовлетворяет ваш постоянный.Я думаю, что в вашем случае вы должны создать свое собственное диалоговое окно с вашим списком пользовательских цветов.

AllowFullOpen - Указывает, может ли пользователь выбирать пользовательские цвета.

CustomColors - коллекция пользовательских цветов, выбранных пользователем.

FullOpen - определяет, будет ли автоматически открываться деталь, используемая для выбора пользовательских цветов.

Пользователи могут создавать свой собственный набор пользовательских цветов.Эти цвета содержатся в Int32, состоящем из значений компонента ARGB (альфа, красный, зеленый и синий), необходимых для создания цвета.Пользовательские цвета могут быть определены, только если для AllowFullOpen установлено значение true.Таким образом, невозможно установить CustomColors и ограничить другие.

...