您可以使用包含所需四种颜色的公共枚举定义您自己的自定义属性。然后,当您渲染控件时,可以相应地设置ForeColor。
枚举:
public enum LabelColor
{
Gray,
Green,
Blue,
Red,
None
}
自定义属性:在构造函数重载RenderControl()
[Bindable(true)]
[DefaultValue(LabelColor.None)]
[Category("Appearance")]
public LabelColor TextColor
{
get
{
EnsureChildControls();
return (ViewState["TextColor"] != null) ?
(LabelColor)Enum.Parse(typeof(LabelColor), ViewState["TextColor"].ToString()) :
LabelColor.None;
}
set
{
EnsureChildControls();
ViewState["TextColor"] = value;
}
}
设置颜色或。请注意,如果喜欢,可以使用Color.FromArgb(),但是,我会建议分配CSS类以保持演示文稿的分离。
switch (this.TextColor)
{
case LabelColor.Gray:
this.CssClass = "label-gray";
break;
case LabelColor.Blue:
this.CssClass = "label-blue";
break;
case LabelColor.Green:
this.CssClass = "label-green";
break;
case LabelColor.Red:
this.CssClass = "label-red";
break;
}
对于枚举,应该在标签类之外还是之内声明它? – Annabelle 2012-02-19 17:48:37
我在控件类中定义了我的矿井,因为它实际上只用于那个控件。 – 2012-02-19 17:50:03
因此,如果我想将这四种颜色用于多种控制,可以在外部定义它吗?另外,你能告诉我如何使用颜色从RGB而不是CSS?我以前没有用过CSS。 – Annabelle 2012-02-19 17:51:10