Я ожидал, что смогу сделать что-то вроде:
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
:
, я получаю следующую ошибку:
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, доступным для просмотра, и я также ограничен палитрой цветов в конструкторе.
Может кто-нибудь объяснить это?Что дизайнер делает здесь?Как он переводит между цветами и цветом и почему я не могу использовать свой собственный?