为什么Windows Forms Designer属性中使用BackColor和ForeColor Int32,而Designer代码中使用Drawing.Colors?

时间:2018-10-16 21:33:32

标签: c# visual-studio winforms visual-studio-2015 visual-studio-2017

我希望能够做类似的事情:

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

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

这是在C#Windows窗体应用程序中。

但是,我注意到在Visual Studio中使用设计器时,BackColor和ForeColor字段将仅接受整数并且具有颜色选择器供您选择。如果我想使用CustomColors类并输入类似CustomColors.CustomColor1System.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属性的用户控件,而且我也仅限于设计器中的颜色选择器。

有人可以解释吗?设计师在这里做什么?它如何在整数和颜色之间转换,为什么我不能使用自己的颜色?

0 个答案:

没有答案