Почему BackColor и ForeColor Int32s в свойствах конструктора Windows Forms, а Drawing.Colors в коде конструктора? - PullRequest
0 голосов
/ 17 октября 2018

Я ожидал, что смогу сделать что-то вроде:

public static class CustomColors
{
    Color CustomColor1 { get; set; } = Color.Black;
}

// In the designer:
form1.BackColor = CustomColors.CustomColor1;

Это в C #, приложении Windows Forms.

Однако я заметил, что при использовании дизайнера в VisualВ полях Studio, BackColor и ForeColor будут приниматься только целые числа, и у вас будет выбор цвета.Если я хочу использовать свой класс CustomColors и ввести что-то вроде CustomColors.CustomColor1 или System.Drawing.Color.Black:

enter image description here

, я получаю следующую ошибку:

CustomColors.CustomColor1 не является допустимым значением для Int32.

Однако выбор Web, а затем Black в окне свойств конструктора приводит к следующей строке кода вдизайнер:

this.BackColor = System.Drawing.Color.Black;

Я могу напечатать свой статический цвет в коде дизайнера следующим образом:

this.BackColor = CustomColors.CustomColor1;

, но затем дизайнерне работает (с той же ошибкой, что и выше).

Определение статических целочисленных значений также не работает - я пробовал это:

public static class CustomColors
{
   Int32 CustomColor1 { get; set; } = Color.Black.ToArgb();
}

Это не только элементы управления Windows Forms- Я попытался создать пользовательский элемент управления со свойством Color, доступным для просмотра, и я также ограничен палитрой цветов в конструкторе.

Может кто-нибудь объяснить это?Что дизайнер делает здесь?Как он переводит между цветами и цветом и почему я не могу использовать свой собственный?

...