c# - 向 System.Drawings.Color 添加颜色选项

标签 c# asp.net visual-studio-2012 system.drawing asp.net-4.5

在 visual studio 中,当在标记(或代码隐藏)中创建控件时,您可以像这样以十六进制格式指定颜色:“#FFFFFF”,但您也可以从预设颜色列表中进行选择,例如:白色,小麦、 window 等(见截图)。
是否可以扩展该列表并添加其他颜色?
enter image description here

最佳答案

此列表基于 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/

相关文章:

c# - 限制类对某些方法的访问(例如写入控制台)

c# - 如何从 MS Access 数据库中删除重复行 (C#)

c# - 将智能手机应用程序部署到 Windows XP/7

asp.net - 失败的请求跟踪 : "a failed request trace for this content already exists" 的 IIS/ASP.net 错误

asp.net-mvc-3 - .ASPXAUTH cookie 在 firebug 中可见,但无法在 C# 代码中检索

c# - 较少内存的方法

asp.net - 在 C# 中引用虚拟目录

c# - 当请求的长度超过 320+ 个字符时,我收到 400 错误请求 - 无效的 Url

c++ - 如何忽略警告 c4090

xml - 抑制 ServiceReference .cs 文件的 Xml 警告