今天给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) 阅读(2381)
评论(7) 编辑 收藏 引用 所属分类:
GacUI