什么是Tabbed窗体
Tabbed窗体就是我们经常见到的“分页”窗体,在Microsoft Win95之前,软件开发工具,例如VB、Delphi等在不同的侧面提供了对Tabbed窗体的支持,但“风格”、“样式”有限,Win95推出后,Tabbed窗体的运用开始逐步增加,大众开始接受Tabbed界面也许是从FireFox流行开始的,其实,在早期的Mozilla系列中已经有这一功能了。
对Visual Basic开发者而言,创建Tabbed类型窗体的方法一般就是通过ActiveX控件,当然,也可以自己定制,在VB3.0中,包含一个这样的例子,只不过比较粗糙而已,由于有了控件技术,VB开发者往往不考虑Tabbed窗体是如何制作的,Delphi中是通过提供VCL组件解决这个问题,因此,Tabbed窗体对VB、Delphi开发者而言,基本不是什么问题,只是“风格、样式”有限而已。
Eclipse、FireFox、VisualStudio、NetBean等大型软件的流行,使我们看到了现代软件的一些集成化特征,这种集成化特征的特点是对“屏幕”空间的综合利用,在UI体现上看,Tabbed窗体是其重要特点之一,而且,软件的这种表现形式使得软件功能的组织变得有序、合理、紧凑,因此,驾驭Tabbed窗体是现代软件架构者值得掌握的技术。
从代码技术上看Tabbed窗体,如果不计较“形态”,问题是相对简单的,但软件表现却显得单调,因此,如同追求各式“楼房”建筑风格一样,人们也在各种“风格”上下了很多功夫,在类似
www.codeproject.com等网站上可以找到许多这样的例子,但由于绝大多数是“个人”的非商业作品,因此,健壮性、视觉等方面都有不尽人意的地方。就市场流行的风格、样式等方面看,Tabbed窗体风格大致也就20几种,一个开发者能够将这些种类都自如驾驭,需要很多的积累。如果能够有一种可描述的方案一致的解决这个问题,那么,基于Tabbed窗体的软件架构,就不存在技术门槛了,这样,会给用户带来更多的用户体验,在这方面,Web开发与桌面开发形成了鲜明的对比,基于Web开发,这种“标签”性质的东西并不是什么技术难点,但桌面开发与之比较有“相形见绌”的感觉。
Tangram框架,采用XML技术对Tabbed窗体在类型方面给出了分类的想法,每一种类型实现为一个插件,这样,其他开发者直接“描述”就可以了,我们看一个图示:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/sunhui/81156466e326436d989f543dee51dae5.png)
在上面的窗体中,大约包含7种类型的Tabbed窗体,如果用一个C++工程开实现,可以想象,这个工程会极为复杂,由于采用了XML技术,使得开发者形成一个如此的UI大约只需要2分钟的时间,而且基本不需要代码级别的工作。