在 visual studio 中,当在标记(或代码隐藏)中创建控件时,您可以像这样以十六进制格式指定颜色:“#FFFFFF”,但您也可以从预设颜色列表中进行选择,例如:白色,小麦、 window 等(见截图)。
是否可以扩展该列表并添加其他颜色?
最佳答案
此列表基于 System.Drawing.KnownColor
枚举值。作为枚举 cannot be extended 和你 cannot inherit from another enum ,如果你想创建包含更多命名颜色的列表以在你自己的代码中使用,你必须实现你自己的枚举,其中包含手动添加的这些值以及你希望在那里看到的其他值。
当然,除了 System.Drawing.KnownColor
枚举之外,Color
结构中还有一个方法用于获取此命名颜色的值 - Color.FromKnownColor
.我认为您还应该向 Color
结构添加扩展方法,这将对您自己的枚举执行相同的操作,就像 FromKnownColor
方法对 KnownColor
枚举所做的那样。也许你甚至可以在你自己的扩展方法中使用 FromKnownColor
方法来简化这个标准枚举中已经存在的颜色。
但是,如果您只想在 ASP.NET 设计器中扩展这个列表,那么您无法在自己的项目中进行任何更改或通过更改 VS 中的选项来执行此操作。也许您可以在 Visual Studio 中编写一个加载项来执行此操作,但如果这是您想要执行的操作,那是我看到的唯一方法。
编辑:如果继承控件是您的一个选项,那么您可以获得的最佳答案可能是simplecoder建议的答案,如 described in his answer - 创建您自己的控件基于旧的,这个新的枚举值绑定(bind)到你想要使用新颜色的属性。
关于c# - 向 System.Drawings.Color 添加颜色选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202279/