引言
在上個任務裡,通過繼承WebControl類創建了一個簡單的星級控件,並且也可 以設置字體邊框等相關樣式,但是需求馬上又來了,如果我們想加入自定義的樣 式,例如希望文本可以自由顯示到圖案左邊或下邊,如下圖所示,對於這樣的要 求怎麼辦?
圖2-1 文字顯示到下方的星級控件
分析
看到上方的圖形,很容易想到為第一個任務裡的Star類添加一個屬性,標識是 在左面還是下面顯示文本,這的確能夠解決現有的問題,但如果過一陣子希望能 夠設置標簽文本的顏色怎麼辦,很容易,再添加一個屬性,具有敏銳眼光的讀者 一定想到,這不是解決問題的最好方法,因為可能會陸續提出新的樣式的要求, 那麼比較合理的解決方法是單獨添加一個樣式屬性,該屬性持有一個樣式集合, 通過修改這個樣式集合可以隨時添加新的外觀特征,最後再呈現控件的時候只需 要使用第一個單元格應用該樣式就可以了。
在.NET中,System.Web.UI.Style類封裝了Web服務器外觀的屬性,例如可以設 置背景色、前景色或邊框等,TableStyle類和TableItemStyle類均擴展了Style類 ,從它們的名字就可以想到TableStyle類用於設置表格控樣的樣式,而 TableItemStyle類用於設置TableRow或TableCell的樣式,它們之間的關系如圖2 -2所示:
圖