共用方式為


視窗管理

注意

此設計指南已針對 Windows 7 建立,但尚未更新較新版本的 Windows。 大部分指引仍適用原則,但簡報和範例不會反映我們目前的設計指導方針

本文涵蓋最初在螢幕上顯示時,視窗的預設位置、相對於其他視窗的堆疊順序(Z 順序)、其初始大小,以及其顯示如何影響輸入焦點。

如需下列指導方針:

  • 最上層窗口沒有擁有者視窗,而且會顯示在任務欄上。 範例:應用程式視窗。 在 Windows Vista 和更新版本中,沒有擁有者視窗和屬性表的對話方塊也會被視為最上層。
  • 擁有的視窗具有擁有者視窗,而且不會顯示在任務欄上。 範例:強制回應對話框、無模式對話框。
  • 使用者起始的視窗會顯示為用戶動作的直接結果。 否則,如果由程式起始,則為程式起始的程式,或由 Microsoft Windows 起始的系統起始。 例如,[選項] 對話框是使用者起始的,但會議提醒是程式起始的。
  • 關係型視窗是使用者起始的視窗,其與啟動對象的關聯性很強。 例如,作功能表或通知區域圖示所顯示的視窗是內容相關,但功能表欄顯示的視窗則不是。
  • 作用中的監視器是執行中程式的監視器。
  • 默認監視器是具有 [開始] 功能表、任務列和通知區域的監視器。

設計概念

視窗管理是最基本的用戶活動之一。 在 Windows Vista 之前,視窗通常會獲得較小的預設大小,並放在畫面中間。 這種方法適用於較舊的單一低解析度監視器,但不適用於新式視訊硬體。

Windows 的設計訴求是支援新式視訊硬體,其通常執行解析度明顯高於最低支持的螢幕解析度,而且可能會有多個監視器。 這樣做:

  • 可讓使用者完全受益於其進階硬體。
  • 使用者需要較少的心力,才能將滑鼠移到更遠的距離。
  • 讓視窗位置更容易預測,因此更容易找到。

支援的螢幕解析度下限

Windows 支援的最小 有效螢幕解析度 為 800x600 像素。 這表示固定大小視窗應該以最小解析度顯示 (同時保留任務欄的空間),但可重設大小的視窗可以優化為有效解析度 1024x768 圖元,只要在最小解析度上運作即可。

雖然 Windows 電腦目前最常見的實體螢幕解析度為 1024x768 像素或更高,但目標為 800x600 像素可讓 Windows:

  • 適用於所有現代化硬體,包括小型筆記本計算機。
  • 支援高 dpi (每英吋點數) 設定。
  • 支援較大的輔助功能字型。
  • 支援全域使用的硬體。

選擇支援的最低解決方案需要達到正確的平衡。 以更高的解析度為目標會導致新式硬體的顯著百分比體驗次佳,而以較低的解析度為目標,會防止設計工具充分利用可用的屏幕空間。

如果您認為目標使用者所使用的解析度明顯高於 Windows 最小值,您可以設計程式,藉由使用可調整大小的視窗來充分利用額外的螢幕空間。

指引

常規

  • 支援最低 Windows 有效解析度 800x600 像素。 對於必須以安全模式運作的重要使用者介面(UI),支援有效解析度為 640x480 圖元。 請務必保留任務列所使用的空間,方法是為任務欄顯示的視窗保留 48 個垂直 相對圖元
  • 優化可重設大小的視窗配置,以有效解析度為 1024x768 圖元。 以仍在運作的方式自動調整這些視窗的大小,以降低螢幕解析度。
  • 請務必以 800x600 像素、120 dpi(125%)1024x768 像素測試您的視窗,並以 1200x900 像素的 144 dpi(150%)測試您的視窗。 檢查配置問題,例如裁剪控件、文字和視窗,以及圖示和點陣圖的延展。
  • 針對觸控和行動裝置使用案例的程式,請針對 120 dpi 進行優化。 高 DPI 螢幕目前在觸控和行動電腦上很普遍。
  • Resizable 視窗不再需要在右下角顯示重設大小圖像,因為:
    • 視窗的所有側邊和邊緣都可以重設大小,而不只是右下角。
    • 圖像需要顯示狀態列,但許多可重設大小的視窗不提供狀態列。
    • 可重設大小的視窗框線和重設大小指標在通訊時會比重設大小圖像更有效率。

標題欄控件

使用標題欄控件,如下所示:

  • 關閉。 所有具有標準視窗框架的主要和次要視窗都應該有標題列上的 [關閉] 按鈕。 按兩下 [關閉] 會影響取消或關閉視窗。

沒有關閉按鈕的對話框 螢幕快照

在此範例中,對話框在標題列中沒有 [關閉] 按鈕。

  • 最小化。 所有主要視窗和長時間執行的無模式次要視窗(例如進度對話框)都應該有 [最小化] 按鈕。 按兩下 [最小化] 會將窗口縮減為其任務列按鈕。 因此,可以最小化的視窗需要標題列圖示。
  • 將/還原最大化。 所有可重設大小的視窗都應該有 [最大化/還原] 按鈕。 按兩下 [最大化] 會以最大大小顯示視窗,而大部分視窗為全螢幕;而按兩下 [還原] 會以先前的大小顯示視窗。 不過,某些視窗無法受益於使用全螢幕,因此這些視窗應最大化為其最大實用大小。

視窗大小

  • 選擇適合其內容的預設視窗大小。 如果您可以有效地使用空間,請不要害怕使用較大的初始視窗大小。
  • 請盡可能使用可重設大小的視窗,以避免滾動條和截斷的數據。 具有動態內容和清單的 Windows 最能受益於可重設大小的視窗。
  • 針對文字檔,請考慮最大行長度為65個字元, 讓文字易於閱讀。 (字元包括字母、標點符號和空格。
  • 固定大小的視窗:
    • 必須完全可見且大小,才能符合工作區域。
  • 可重設大小的視窗:
    • 可能會針對更高的解析度進行優化,但在顯示時間視需要縮小到實際的螢幕解析度。
    • 對於逐漸較大的視窗大小,必須逐漸顯示更多資訊。 請確定至少有一個視窗部分或控件具有可重設大小的內容。
    • 應避免預設還原的大小最大化或接近最大化。 相反地,選擇預設大小,通常是最有用的,而不要使用全螢幕。 假設使用者會將視窗最大化,而不是調整大小,使其全螢幕。
    • 如果內容不再可使用的大小,則應該設定最小視窗大小。 針對可重設大小的控件,請將最小可重設大小的元素大小設定為最小的功能大小,例如清單檢視中的最小功能數據行寬度。
    • 如果這樣做會使內容以較小的大小使用,則應該變更簡報。

媒體播放機按鈕的螢幕快照

在此範例中,當視窗對標準格式而言太小時,Windows Media Player 會變更其格式。

視窗位置

  • 針對下列指導方針,「置中」表示將垂直放置稍微偏向監視器頂端,而不是完全放在中間。 在監視器/擁有者頂端與視窗頂端之間放置 45% 的空間,以及監視器/擁有者底部與視窗底部之間的 55%。 這樣做是因為眼睛自然偏向螢幕頂端。

    視窗的 圖略高於中央

    「置中」表示將垂直放置稍微偏向監視器頂端。

  • 如果視窗是內容相關,請一律在啟動窗口的物件附近顯示它。 將它放開,讓視窗未涵蓋來源物件。

    • 如果使用滑鼠顯示,請盡可能將它向下和向右位移。

    位於物件右側的內容型視窗 圖

    顯示它從中啟動之物件附近的關係型視窗。

    通知區域視窗圖

    從通知區域圖示啟動的 Windows 會顯示在通知區域附近。

  • 如果使用畫筆顯示,請盡可能放置它,以免被使用者的手遮住。 針對右手使用者,向左顯示;否則會顯示在右側。

    放置於物件左側的內容型視窗 圖

    使用手寫筆時,也會顯示關係型視窗,讓使用者的手不涵蓋這些視窗。

  • 開發人員: 您可以使用 getMessageExtraInfo API 來區分滑鼠事件和手寫筆事件。 您可以使用具有 SPI_GETMENUDROPALIGNMENT 的 SystemParametersInfo API 來判斷使用者的

  • 使用中監視器右下角的 [放置進度] 對話框。

    右下角進度列的 圖

    將進度對話框放在右下角。

  • 如果視窗與目前內容或使用者動作無關,請將它放在遠離目前的指標位置。 這樣做可防止意外的互動。

  • 如果視窗是最上層應用程式或檔,請一律從監視器左上角重疊其原點。 如果由使用中程式所建立,請使用使用中的監視器;否則,請使用預設監視器。

    從左上方圖

    從監視器左上角串聯最上層應用程式或文檔視窗。

  • 如果視窗是最上層公用程式,請一律在監視器中顯示為「置中」。 如果由使用中程式所建立,請使用使用中的監視器;否則,請使用預設監視器。

    以監視器為中心之公用程式視窗的 圖

    將最上層公用程式視窗置中。

  • 如果視窗是擁有的視窗,則一開始會在擁有者視窗頂端顯示它「置中」。 針對後續的顯示,如果這樣做可能更方便,請考慮將其顯示在其最後一個位置(相對於擁有者視窗)。

    以擁有者視窗為中心 圖表

    一開始,在擁有者視窗頂端置中擁有的視窗。

  • 針對無模式對話框,一律會在擁有者視窗上方一開始顯示,使其易於尋找。 不過,如果使用者啟動擁有者視窗,這可能會遮蔽無模式對話方塊。

    透過擁有者視窗的無模式對話框 圖

    一開始,在擁有者視窗頂端顯示無模式對話框,使其易於尋找。

  • 如有必要,請調整初始位置,讓整個視窗在目標監視器中可見。 如果可重設大小的視窗大於目標監視器,請將其縮減為符合。

視窗順序 (Z 順序)

  • 一律將擁有的視窗放在其擁有者視窗的頂端。 絕對不要將擁有的視窗放在其擁有者視窗下方,因為最有可能的使用者不會看到這些視窗。
  • 尊重使用者的 Z 訂單選取。 當使用者選取視窗時,將與該程式實例相關聯的視窗(視窗加上任何擁有者或擁有的視窗)帶入 Z 訂單頂端。 請勿變更任何其他視窗的順序,例如相同程序的獨立實例。

窗口啟用

  • 尊重使用者的視窗狀態選取。 如果現有的視窗需要注意,請閃爍任務欄按鈕三次以吸引注意力,並讓它保持醒目提示,但不會執行任何其他動作。 請勿還原或啟動視窗。 請勿使用任何音效。 相反地,讓使用者在準備好時啟動視窗。
    • 例外狀況: 如果視窗未出現在任務欄上,請將它帶到所有其他視窗的頂端,並改為閃爍其標題欄。
  • 還原主要視窗也應該還原其所有次要視窗,即使這些次要視窗有自己的任務欄按鈕也一樣。 還原時,將次要視窗放在主要窗口頂端。

輸入焦點

  • 由使用者起始動作顯示的 Windows 應該會取得輸入焦點,但只有在視窗立即 轉譯時(在 5 秒內)。 一旦轉譯視窗,就可以取得輸入焦點一次。
    • 如果窗口呈現緩慢(超過 5 秒),使用者可能會等待時執行另一項工作。 此時專注將是一個煩惱,特別是如果做一次以上。
  • 系統起始動作未立即顯示或顯示的 Windows 不應該取得輸入焦點。 相反地,在沒有焦點的情況下,在頂端顯示,並讓使用者在準備好時加以啟用。
    • 例外狀況: 認證管理員。

堅持

  • 重新執行視窗時,請考慮以與上次存取相同的狀態顯示視窗。 關閉時,儲存使用的監視器、視窗大小、位置和狀態(最大化與還原)。 重新顯示時,請使用適當的監視器還原儲存的視窗大小、位置和狀態。 此外,請考慮讓這些屬性以每個用戶為基礎,跨程序實例保存。 例外狀況:
    • 請勿儲存或讓這些屬性在 Windows 使用時持續存在,讓使用者更可能想要完全開始。
    • 對於可能用於Windows 平板電腦和觸控技術電腦上的程式,請儲存兩個窗口狀態以用於橫向和直向模式。 如需詳細資訊,請參閱 設計不同顯示器大小
  • 如果目前的監視器組態無法使用其最後狀態顯示視窗:
    • 嘗試使用最後一個監視器來顯示視窗。
    • 如果視窗大於監視器,請視需要調整視窗大小。
    • 視需要將位置移至左上角以符合監視器。
    • 如果上述步驟無法解決問題,請還原為默認視窗放置指導方針。 如果可能的話,請考慮還原先前的大小。