Bra*_*ann 5 .net colors skinning winforms
我正在构建一个WinForms应用程序,我在大多数控件上使用特定的颜色.我有时从WinForms设计师那里做,有时直接进入我的代码.
我有一个静态类看起来像这样:
public static class MyColors
{
public static Color DarkGreen = Color.FromArgb(0, 70, 62);
...
public static Color Orange = Color.FromArgb(239, 132, 16);
}
Run Code Online (Sandbox Code Playgroud)
我可以很容易地在代码中使用这些颜色,但是设计师无法做到这一点,这会引发这个错误:
MyColors.DarkGreen不是Int32的有效值.
(我试图存储这些颜色的Int32表示,但是失败并出现相同的错误)
我现在使用的解决方案是在设计器中使用rgb颜色代码,在我的代码中使用MyColors类值,并且我正在使用Visual Studio的替换所有功能进行更改.这不是一个好的解决方案,但到目前为止我还没有找到更好的想法.
有任何想法吗 ?
注意:我知道这个问题,与我的略有不同,因为我不打算改变"KnownColors".
要获得设计人员对其他颜色定义的支持,您可能需要创建自己的编辑器来扩展或替换编辑Color器。定义这些属性后,您需要通过将属性应用于Editor受影响的属性来告诉设计者哪些属性应该使用您的编辑器。
您也可以通过使用 aTypeConverter和 the执行类似的操作来取得一些成功TypeConverterAttribute。