今天給ListControl重構了一下,現在數據源、樣式、排版和坐標軸變成了正交的四個模塊。舉個例子,只需要寫一個針對同等行高從上到下的排版算法,那么通過坐標軸變換功能,就可以同時獲得四種方向的排版了。這種功能是相當常見的。對于ListView那種塊狀排版來說,坐標軸變換可以獲得八種方向的排版。最新的代碼發布在了Vczh Library++3.0(Candidate\GUI\GuiDemo\GuiDemo.sln)貼圖如下:




GacUI的列表控件通過替換數據源、樣式、排版和坐標軸變換等方式,可以被配置成普通列表、ListView、TreeView、甚至是更復雜一點的帶折疊的ListView等等。而且它們都是基于Virtual List的,因此可以無壓力顯示超大數據源的內容。當然,這需要排版功能的配合,所以我最近一直在給列表控件編寫預定義的很多數據源、樣式、排版和坐標軸變換。這樣就可以立刻擁有基本的控件了。如果要擴展的話,只需要把各種組合替換一下,或者自己編寫一個樣式,就可以得到很多好用的列表控件了(譬如說添加一個checkbox到ListViewItem上面)。
Win7資源管理器那個ListView的ColumnHeader的樣式已經開發完畢了,最后只要通過編寫一個樣式,就可以補上ListView剩下的最后那一個Detail模式了。
posted on 2011-12-15 07:08
陳梓瀚(vczh) 閱讀(2387)
評論(7) 編輯 收藏 引用 所屬分類:
GacUI