维基百科里对于模态窗口的定义为:“从属于应用程序主窗口的图形控制元素”。目的在于保留父级主窗口主流程的前提下,使用一个子窗口来完成某些特定操作。用户需要先与模态窗口进行交互,然后才能返回父级程序。
1. 人机交互
在人机交互中,人是主导者。模态主要的应用是“切换”的作用,根据切换状态的时间可分为“临时模态”、“长时模态”。
- 临时模态:需要一直控制某一按键才能进入另一系统状态进行操作。例如默认英文小写输入法的情况下,一直按住“Shift“再键入就会切换成大写输入。
- 长时模态:仅需一次操作,就可以一直处在切换的状态,直至再一次操作取消。例如默认英文小写输入法的情况下,按一次”Caps Lock“就可以切换成大写输入。
2. 用户界面
在用户界面中,“系统”往往是模态的发起者。通常以对话框的形式强制要求用户回应,在未完成和对话框的交互前,不可以回到之前的主程序。这里分为“应用程序”的模态对话框和“操作系统”的模态对话框也有所区分。二者的使用原则一致,最大区别在于,应用程序内的模态对话框仅在当前程序内触发,同时开启的多个程序之间互不影响。而操作系统的模态对话框优先于所有应用程序。
3. 无模态对话框(Modeless)
无模态对话框并不属于“模态”相关组件应用上,实际使用中会以具体的功能作为组件命名,在此为了和模态对话框对照解释。
这是一种非强制回应的对话框,用于向用户请求非必须资料。即可以不理会这种对话框或不向其提供任何信息而继续进行当前工作,所以窗口均可打开并处于活动状态或是获得焦点(人机交互热点)。无模态对话框的权级要弱于模态对话框,可交互、不可交互的组件都有,因此使用范围较广。例如用于“详情查看”、“操作通知”,还有应用和操作系统中的一些小工具使用页会触发无模态对话框。