視窗管理
注意
此設計指南是針對 Windows 7 所建立,但尚未針對較新版本的 Windows 更新。 大部分的指導方針仍適用主體,但簡報和範例不會反映 我們目前的設計指導方針。
本文涵蓋一開始顯示在畫面上時的預設視窗位置、相對於其他視窗的堆疊順序 (Z 順序) 、其初始大小,以及其顯示如何影響輸入焦點。
針對下列指導方針:
- 最上層視窗沒有擁有者視窗,而且會顯示在工作列上。 範例:應用程式視窗。 在 Windows Vista 和更新版本中,沒有擁有者視窗和屬性工作表的對話方塊也會被視為最上層。
- 擁有的視窗具有擁有者視窗,而且不會顯示在工作列上。 範例:強制回應對話方塊、無強制回應對話方塊。
- 使用者起始的視窗會顯示為使用者動作的直接結果。 否則,如果由程式起始,則為程式起始的程式,或由 Microsoft Windows 起始時所起始的系統。 例如,[選項] 對話方塊是使用者起始的,但已起始會議提醒。
- 關聯式視窗是使用者起始的視窗,與啟始物件具有強式關聯性。 例如,操作功能表或通知區域圖示所顯示的視窗是內容相關的,但功能表列顯示的視窗則不是。
- 作用中監視器是作用中程式執行所在的監視。
- 預設監視器是 [開始] 功能表、工作列和通知區域的監視器。
設計概念
視窗管理是最基本的使用者活動之一。 在 Windows Vista 之前,Windows 通常會提供較小的預設大小,並放在螢幕中間。 這種方法適用于較舊的單一低解析度監視器,但不適用於新式視訊硬體。
Windows 的設計訴求是支援新式視訊硬體,其解析度通常遠高於最低支援的螢幕解析度,而且可能會有多個監視器。 請執行以下動作:
- 可讓使用者完全受益于其進階硬體。
- 使用者需要較少的心力,才能將滑鼠移至更大的距離。
- 讓視窗位置更容易預測,因此更容易找到。
最低支援的螢幕解析度
Windows 支援的最低 有效螢幕解析度 為 800x600 圖元。 這表示固定大小視窗在保留工作列的空間) 時,應該以最小解析度顯示 (,但可調整大小的視窗可以優化,以有效解析度為 1024x768 圖元,只要它們以最小解析度運作即可。
雖然 Windows 電腦目前最常見的實體螢幕解析度為 1024x768 圖元或更高版本,但以 800x600 圖元為目標可讓 Windows:
- 與所有現代化硬體搭配運作良好,包括小型筆記本電腦。
- 支援每英吋) 設定的高 DPI (點數。
- 支援較大型的協助工具字型。
- 支援全域使用的硬體。
選擇支援的最低解析度需要平衡正確的平衡。 以較高的解析度為目標會導致新式硬體百分比的次佳體驗,而以較低的解析度為目標可防止設計工具充分利用可用的螢幕空間。
如果您認為目標使用者所使用的解析度明顯高於 Windows 最小值,您可以設計程式,藉由使用調整良好的可調整大小視窗來充分利用額外的螢幕空間。
指導方針
一般
- 支援最小 Windows 有效解析度 800x600 圖元。 對於必須以安全模式運作的重要使用者介面 (UI) ,支援有效解析度為 640x480 圖元。 請務必針對以工作列顯示的視窗保留 48 個垂直 相對圖元 ,以考慮工作列所使用的空間。
- 優化可調整大小的視窗配置,以有效解析度為 1024x768 圖元。 以仍在運作的方式自動調整這些視窗的大小,以降低螢幕解析度。
- 請務必以 96 DPI (100%) 800x600 圖元、120 DPI (125%) 1024x768 圖元,以及 144 DPI (150%) 1200x900 圖元。 檢查配置問題,例如裁剪控制項、文字和視窗,以及圖示和點陣圖的延展。
- 針對觸控和行動裝置使用案例的程式,請針對 120 DPI 進行優化。 觸控和行動電腦上目前普遍使用高 DPI 螢幕。
-
可調整大小的視窗不再必須在右下角顯示調整大小圖像 ,因為:
- 視窗的所有側邊和邊緣皆可調整大小,而不只是右下角。
- 圖像需要顯示狀態列,但許多可調整大小的視窗不提供狀態列。
- 可調整大小的視窗框線和調整大小指標在通訊時會比調整大小圖像更有效率。
標題列控制項
使用標題列控制項,如下所示:
- 很接近了。 具有標準視窗框架的所有主要和次要視窗都應該有標題列上的 [關閉] 按鈕。 按一下 [關閉] 會影響取消或關閉視窗。
在此範例中,對話方塊在標題列中沒有 [關閉] 按鈕。
- 去蕪存菁。 所有主要視窗和長時間執行的無模式次要視窗 (,例如進度對話方塊) 應該有 [最小化] 按鈕。 按一下 [最小化] 會將視窗縮減為其工作列按鈕。 因此,可以最小化的視窗需要標題列圖示。
- 最大化/還原。 所有可調整大小的視窗都應該有 [最大化/還原] 按鈕。 按一下 [最大化] 會顯示視窗的大小上限,而大部分視窗為全螢幕;而按一下 [還原] 則會以先前的大小顯示視窗。 不過,某些視窗無法受益于使用全螢幕,因此這些視窗應該最大化為最大的實用大小。
視窗大小
- 選擇適合其內容的預設視窗大小。 如果您能夠有效地使用空間,請不要擔心使用較大的初始視窗大小。
- 請盡可能使用可調整大小的視窗,以避免捲軸和截斷的資料。 具有動態內容和清單的 Windows 可受益于可調整大小的視窗。
- 對於文字檔,請考慮長度上限為 65 個字元 ,讓文字更容易閱讀。 (字元包括字母、標點符號和空格。)
- 固定大小的視窗:
- 必須完全可見且大小必須符合工作區域。
- 可調整大小的視窗:
- 可能已針對更高的解析度進行優化,但在顯示時間視需要縮小到實際的螢幕解析度。
- 對於漸進較大的視窗大小,必須逐漸顯示更多資訊。 請確定至少有一個視窗部分或控制項具有可調整大小的內容。
- 應避免最大化或接近最大化的預設還原大小。 相反地,請選擇預設大小,通常最有用,而不需全螢幕。 假設使用者會將視窗最大化,而不是調整大小,使其全螢幕。
- 如果內容不再使用的大小低於此大小,則應該設定視窗大小下限。 對於可調整大小的控制項,請將最小可調整大小的元素大小設定為其最小功能大小,例如清單檢視中的最小功能資料行寬度。
- 如果這樣做會使內容以較小的大小使用,則應該變更簡報。
在此範例中,當視窗變得太小而無法使用標準格式時,Windows 媒體播放機變更其格式。
視窗位置
針對下列指導方針,「置中」表示將垂直位置稍微偏向監視器頂端,而不是完全放在中間。 在監視器/擁有者頂端與視窗頂端之間放置 45% 的空間,並在監視器/擁有者底部與視窗底部之間放置 55%。 這樣做是因為眼睛自然偏向螢幕頂端。
「置中」表示將垂直位置稍微偏向監視器頂端。
如果視窗是關聯式視窗,請一律在啟動它的物件附近顯示它。 將它放開,讓視窗未涵蓋來源物件。
- 如果使用滑鼠顯示,請盡可能將它向下和向右位移。
顯示其啟動來源物件附近的關聯式視窗。
從通知區域圖示啟動的 Windows 會顯示在通知區域附近。
如果使用手寫筆顯示,請盡可能將其放在不由使用者的手上覆蓋。 若為右手使用者,請向左顯示;否則會顯示在右側。
使用畫筆時,也會顯示內容相關的視窗,讓使用者手不涵蓋這些視窗。
開發 人員: 您可以使用 GetMessageExtraInfo API 來區分滑鼠事件和手寫筆事件。 您可以使用SystemParametersInfo API 搭配SPI_GETMENUDROPALIGNMENT來判斷使用者的手部。
將進度對話方塊放在使用中監視器右下角的方式。
將進度對話方塊放在右下角。
如果視窗與目前內容或使用者動作無關,請將它放在離開目前的指標位置。 這樣做可防止意外的互動。
如果視窗是最上層應用程式或檔,請一律將其原點重迭在監視器左上角。 如果使用中程式所建立,請使用使用中的監視器;否則,請使用預設監視器。
從監視器左上角的上層應用程式或檔視窗串聯。
如果視窗是最上層公用程式,請一律在監視器中顯示為「置中」。 如果使用中程式所建立,請使用使用中的監視器;否則,請使用預設監視器。
置中最上層公用程式視窗。
如果視窗是擁有的視窗,一開始會顯示在擁有者視窗頂端的「置中」。 針對後續顯示,請考慮將其顯示在相對於擁有者視窗的最後一個位置 (,如果這樣做可能更方便,) 。
一開始,在擁有者視窗頂端置中擁有的視窗。
針對無強制回應對話方塊,一律會在擁有者視窗頂端一開始顯示,使其易於尋找。 不過,如果使用者啟動擁有者視窗,這可能會遮蔽無強制回應對話方塊。
一開始,在擁有者視窗頂端顯示無強制回應對話方塊,讓他們更容易找到。
如有必要,請調整初始位置,讓整個視窗顯示在目標監視器內。 如果可調整大小的視窗大於目標監視器,請將其縮減為符合。
視窗順序 (Z 順序)
- 一律將擁有的視窗放在其擁有者視窗的頂端。 絕對不要將擁有的視窗放在其擁有者視窗底下,因為很可能使用者看不到這些視窗。
- 尊重使用者的 Z 訂單選取。 當使用者選取視窗時,只將與該程式實例相關聯的視窗 (視窗加上任何擁有者或擁有的視窗,) 到 Z 訂單頂端。 請勿變更任何其他視窗的順序,例如相同程式的獨立實例。
視窗啟動
- 遵守使用者的視窗狀態選取。 如果現有的視窗需要注意,請閃爍工作列按鈕三次,以吸引注意力並使其醒目提示,但不會執行任何其他動作。 請勿還原或啟動視窗。 請勿使用任何音效。 相反地,讓使用者在準備好時啟動視窗。
- 例外: 如果視窗未出現在工作列上,請將它帶到所有其他視窗的頂端,並改為閃爍其標題列。
- 還原主要視窗也應該還原其所有次要視窗,即使這些次要視窗有自己的工作列按鈕也一樣。 還原時,將次要視窗放在主要視窗的頂端。
輸入焦點
-
由使用者起始動作顯示的 Windows 應該會取得輸入焦點,但只有在視窗在 5 秒內立即轉譯 () 時。 一旦轉譯視窗,就可以取得輸入焦點一次。
- 如果視窗呈現速度緩慢 (超過 5 秒) ,則使用者在等候時可能會執行另一個工作。 此時將焦點放在一點會是一個令人氣氣的,特別是如果完成一次以上。
- 系統起始動作未立即顯示或顯示的 Windows 不應該取得輸入焦點。 相反地,在頂端顯示沒有焦點,並讓使用者在準備好時加以啟用。
- 例外: 認證管理員。
持續性
- 重新顯示視窗時,請考慮以與上次存取相同的狀態顯示視窗。 關閉時,儲存使用的監視器、視窗大小、位置和狀態 (最大化與還原) 。 重新顯示時,請使用適當的監視器還原儲存的視窗大小、位置和狀態。 此外,請考慮讓這些屬性以每個使用者為基礎,跨程式實例保存。
例外狀況:
- 當使用者的使用方式更可能要完全開始時,請勿儲存或讓這些屬性持續存在。
- 對於可能用於Windows Tablet 及觸控技術電腦上的程式,請儲存兩個視窗狀態以進行橫向和直向模式。 如需詳細資訊,請參閱 設計不同顯示器大小。
-
如果目前的監視器組態無法使用其最後一個狀態來顯示視窗:
- 嘗試使用其最後一個監視器來顯示視窗。
- 如果視窗大於監視器,請視需要調整視窗的大小。
- 視需要將位置移至左上角以符合監視器。
- 如果上述步驟無法解決問題,請還原為預設視窗放置指導方針。 可能的話,請考慮還原先前的大小。