正在将自定义颜色添加到Color结构中

本文关键字:Color 结构 添加 颜色 自定义 | 更新日期: 2023-09-27 18:28:07

是否可以添加到.NET中的颜色列表中?例如彩色、红色、绿色等已经存在,但我想添加更多的颜色,例如彩色、浅色、深灰色。。。

编辑:我需要这个,这样我就可以为我的自定义用户控件制作默认颜色,而不是每次更改默认颜色时都重新键入245,65,65或其他任何颜色

您可以像这样实现Jon Skeet的想法

public struct MoreColors // or public static class
{
    public static Color SomeNiceColor { get { return Color.FromArgb(12,136,20); } }
    public static Color MyPreferredColor { get { return Color.FromArgb(209,80,0); } }
}

从C#6.0开始,您可以使用表达式体属性。它们在语义上是相同的,只是语法更简单。

public struct MoreColors 
{
    public static Color SomeNiceColor => Color.FromArgb(12,136,20);
    public static Color MyPreferredColor => Color.FromArgb(209,80,0);
}

更有效的方法是使用带有初始化器的自动实现的只读属性(因为C#6.0也是如此),因为它们只会初始化一次,即使访问几次:

public struct MoreColors 
{
    public static Color SomeNiceColor { get; } = Color.FromArgb(12,136,20);
    public static Color MyPreferredColor { get; } =  Color.FromArgb(209,80,0);
}

正在将自定义颜色添加到Color结构中

否-Color中的所有字段都已存在;不能向类型中添加任何内容。

不过,您可以始终创建自己的类型,称为类似MoreColors的类型。显然,如果你感兴趣的话,这不会影响设计器中显示的内容。

不,没有办法做到这一点。您可以考虑添加一个extension method,但它(如果是)只是一个方法,而不是静态字段,因为它在本机类中。