ASP.NET自定义控件 第二天 带有自定义样式的星级控件2011-09-02 博客园 holywolf引言在上个任务里,通过继承WebControl类创建了一个简单的星级控件,并且也可 以设置字体边框等相关样式,但是需求马上又来了,如果我们想加入自定义的样 式,例如希望文本可以自由显示到图案左边或下边,如下图所示,对于这样的要 求怎么办?

图2-1 文字显示到下方的星级控件分析看到上方的图形,很容易想到为第一个任务里的Star类添加一个属性,标识是 在左面还是下面显示文本,这的确能够解决现有的问题,但如果过一阵子希望能 够设置标签文本的颜色怎么办,很容易,再添加一个属性,具有敏锐眼光的读者 一定想到,这不是解决问题的最好方法,因为可能会陆续提出新的样式的要求, 那么比较合理的解决方法是单独添加一个样式属性,该属性持有一个样式集合, 通过修改这个样式集合可以随时添加新的外观特征,最后再呈现控件的时候只需 要使用第一个单元格应用该样式就可以了。在.NET中,System.Web.UI.Style类封装了Web服务器外观的属性,例如可以设 置背景色、前景色或边框等,TableStyle类和TableItemStyle类均扩展了Style类 ,从它们的名字就可以想到TableStyle类用于设置表格控样的样式,而 TableItemStyle类用于设置TableRow或TableCell的样式,它们之间的关系如图2 -2所示:

图