尽管MDI被认为是有害的,但是一些应用程序(甚至是MS Office,Adobe应用程序)仍然以纯粹形式使用它,或者某些应用程序仍然使用标签/类似IDE的界面.
MDI接口是否仍适用于某些应用程序?
我正在考虑一个应用程序,其中通常一次使用多个文档,并且通常希望在它们之间查看或复制/粘贴多个文档.
一个例子是Origin,其中一个项目中有多个工作表和图形窗口; 标签式或类似IDE的界面会有很多不方便的来回切换.
在Mac上,应用程序有多个顶级窗口来解决这个问题是很自然和方便的,如果不使用MDI,Windows中的首选方法是什么?
MDI的缺点如下:
它通常要求用户学习和理解更复杂的窗口关系集.
许多简单的操作可能需要两个步骤.例如,将所需窗口带到前台可能要求用户首先将容器窗口向前移动,然后将正确的主窗口向前移动到容器窗口中.调整窗口大小或最大化可能意味着首先调整容器窗口,然后调整其中的主窗口.
如果打开了多个容器窗口,则用户可以忘记哪个窗口具有所需的主窗口,需要进行繁琐的搜索.
用户很容易被最大化,图标化,分层和关闭窗口的双重方式所困惑.例如,他们可能会关闭整个应用程序而不是容器窗口中的窗口.或者他们可能"丢失"一个窗口,因为他们在容器窗口中将其图标化而没有意识到它.
用户在他或她的窗户可以承担的尺寸和位置方面受到限制.假设我想同时查看一个应用程序的3个窗口和另一个应用程序的1个窗口.使用SDI,我可以让每个窗口占据屏幕的一个象限,但我不能用MDI做到这一点.如果我希望MDI中的一个窗口很大而另一个窗口很小,该怎么办?我必须使容器窗口变大以容纳大窗口(它遮挡其他应用程序的窗口),但是在看孩子时会浪费空间.
注意,所有这些缺点也适用于标签式文档界面(TDI),标签式界面具有额外的缺点,即用户不能并排查看同一容器窗口中的两个文档.标签还会增加混乱并消耗窗户中的空间.但是,总体TDI往往比MDI问题少,所以它们可能是特殊情况的首选(继续阅读)
总之,很难想到使用MDI的任何情况.它并不比SDI更好,同时增加了更多的复杂性和导航开销,并且与其他应用程序的窗口工作效果不佳.
应用程序没有理由不能拥有多个顶级SDI窗口.即使使用像Origin这样的应用程序,只要项目在每个窗口中得到很好的识别,我就不会看到项目分布在多个SDI窗口中的问题.SDI还允许不同类型的窗口(例如,图形与工作表)具有不同的菜单和工具栏,而不是根据活动窗口隐藏或禁用项目(前者令人困惑,后者浪费空间).
SDI为您的用户提供了比MDI或TDI更大的灵活性.用户可以重叠或最大化窗口,并使用任务栏/停靠栏作为事实上的选项卡界面.用户可以选择调整窗口的大小和重新定位,以便他们可以同时查看多个窗口.每个窗口可以独立调整大小以优化屏幕空间.无论MDI或TDI可能具有什么优势,您都可以增强SDI以获得这些优势(例如,提供一个缩略图菜单,使得在窗口之间切换比使用任务栏更快,与选择标签相比,或提供一个控制图标显示所有点击一个应用程序的窗口).
除非您有令人信服的理由使用TDI,否则请转SDI以实现这种灵活性.令人信服的理由包括以下部分内容:
每个选项卡用于不相关的高阶任务,用户不会经常在选项卡之间切换或跨选项卡比较信息.
您正在与对任务栏/停靠点和多个窗口无知或混淆的非常低端用户合作,并且不知道如何调整窗口大小(看起来引人注目的选项卡图像比这些用户的任务栏更好).
您预计通常会有一大组标签(例如,4个或更多),如果它们是任务栏/底座上的SDI窗口,您可以比操作系统更有效地控制其显示(例如,关于订单和标签).
使用SDI,您遇到的问题是用户将工具栏或非活动窗口的调色板与活动窗口混淆.
选项卡固定为数字并永久打开(例如,当每个选项卡是同一数据对象的不同组件时).用户没有背负着试图区分关闭标签和关闭整个窗口的问题; 找出要导航到的窗口不是问题,因为所有窗口都有相同的选项卡.
实际上只有一种方法可以正确排列任务数据,用户之间没有任何差异或者他们实际使用的是什么.您也可以使用制表符和主 - 细节窗格的组合为用户设置它,而不是依靠用户来正确排列和调整SDI窗口的大小.
总之,考虑到用户的能力,应用程序复杂性和任务结构,如果您的应用程序可以比用户/操作系统更好地管理内容显示,请使用TDI,否则使用SDI.
旧式MDI(在文档之间切换,你必须通过Windows菜单)很烦人.较新的MDI(如Opera和Mozilla中的选项卡)使文档之间的切换变得非常简单,并且似乎已被很好地接受.如果在没有MDI的情况下打开多个文档,它们也不会使您的任务栏混乱.
请注意,您使用的示例(MS Office和Adobe应用程序)是大型程序,具有许多功能.用户将在该程序的大部分时间内处理该程序,并且只处理该程序.
较新版本的MS Office(2007)和Adobe Photoshop(CS4)分别使用多个窗口和选项卡.
请注意,对于Windows 7,由于Microsoft API提供的标签的额外功能,MDI可能会失去人气(尽管您不需要严格使用标签 - MDI窗口可以工作,但对于用户来说会比平时更混乱).