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




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