共用方式為


樹視圖

注意

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

透過樹視圖,使用者可以使用單一選取專案或多重選取專案,檢視及與以階層方式排列的物件集合互動。

在樹狀結構中,包含數據的對象稱為分葉節點,而包含其他對象的物件則稱為容器節點。 單一最上層容器節點稱為根節點。 用戶可以按下加號和減號展開器按鈕來展開和折疊容器節點。

windows 檔案總管樹視圖的 螢幕快照

典型的樹檢視。

注意

版面配置功能表 相關的指導方針會分別顯示在文章中。

這是正確的控件嗎?

擁有階層式數據並不表示您必須使用樹檢視。 通常 清單檢視 是更簡單、更強大的選擇。 清單檢視:

  • 支持數個不同的檢視。
  • 支援依 [詳細數據] 檢視中的任何數據行排序數據。
  • 支援將數據組織成群組,形成兩層階層。

若要使用清單檢視,您可以使用下列技術將階層式資訊扁平化:

  • 如果存在,請移除根節點,因為它通常不需要。

  • 使用清單檢視群組、索引卷標、下拉式清單,或 可展開的標題 來取代最上層容器。

    包含清單

    在此範例中,清單檢視群組會用於最上層容器。

    用於最上層容器的索引標籤螢幕快照

    在此範例中,索引標籤用於最上層容器

    作為容器螢幕快照

    在此範例中,下拉式清單會用於最上層容器。

  • 如果相關聯的控件顯示所選容器的內容,該控件可以顯示較低層級的階層。

    目錄窗格的 螢幕快照

    在此範例中,低階容器會顯示在文檔視窗中。

如果您需要顯示兩個以上的階層(不包括根節點),則必須使用樹視圖。

若要決定樹視圖是否為正確的控件,請考慮下列問題:

  • 數據是否為階層式? 如果沒有,請使用另一個控件。
  • 階層是否至少有三個層級(不包括根目錄)。 如果沒有,請考慮其他選項,例如清單檢視群組、索引標籤、下拉式清單或可展開的標題。
  • 專案是否具有輔助數據? 如果是,請考慮在詳細數據檢視模式中使用清單檢視,以充分利用輔助數據。
  • 較低層級的數據與獨立子工作有關嗎? 如果是,請考慮在相關聯的控件或個別視窗中顯示資訊(使用 命令按鈕連結顯示)。
  • 目標使用者是否為進階? 進階使用者更擅長使用樹狀結構。 如果您的應用程式是針對新手使用者,請避免使用樹視圖。
  • 專案是否具有大部分使用者熟悉的單一自然階層式分類? 如果是,則數據非常適合樹視圖。 如果需要多個檢視或排序,請改用清單檢視。
  • 使用者是否需要在某些案例中查看較低層級的數據,或部分但並非全部查看? 如果是,則數據非常適合樹視圖。

注意

有時候,使用清單檢視實作看起來像樹檢視的控件。 在這種情況下,請根據使用方式套用指導方針,而不是根據實作來套用指導方針。

設計概念

樹狀結構的目的是要組織數據並輕鬆地尋找,但很難讓樹狀結構中的數據易於探索。 決定樹檢視及其組織時,請記住下列原則。

可預測性和可探索性

樹視圖是以對象之間的關聯性為基礎。 當物件形成清楚、已知且互斥的關聯性時,樹狀結構最適合用來對應至單一且容易判斷的容器。

一個重要的問題是物件可以出現在不同的節點中。 例如,使用者預期在哪裡找到播放音樂的硬體裝置、具有大型硬碟,並使用USB埠? 或許在數個不同的容器節點中,例如多媒體、記憶體、USB,以及可能位於硬體資源中。 其中一個解決方案是將每個物件放在單一最適當的容器下,而不論情況為何;另一種方法是將每個物件放在所有套用的容器之下。 前者會提升簡單、乾淨的階層,而後者則提升可探索性,每個階層都有優點和潛在問題。

使用者可能無法完全瞭解樹狀結構的版面配置,但在與樹狀結構互動一段時間后,它們將會形成關聯性的心理模型。 如果該心理模型不正確,則會導致混淆。 例如,假設音樂播放機可以在多媒體、記憶體和USB容器中找到。 此安排可改善可探索性。 如果使用者第一次在多媒體中找到裝置,使用者可能會得出結論,像是音樂播放程式的所有裝置都會出現在多媒體容器中。 然後,用戶會預期類似裝置,例如數位相機,會出現在多媒體容器中,如果情況並非如此,就會變得混淆。

設計樹狀結構時的挑戰是平衡可探索性與可預測的使用者模型,以將混淆降到最低。

廣度與深度

可用性研究顯示,使用者更成功地在樹狀結構中尋找比深樹中的物件更成功,因此在設計樹狀結構時,您應該偏好廣度而不是深度。 在理想情況下,樹狀結構應該不超過四個層級(不計算根節點),而且最常存取的對象應該出現在前兩個層級中。

其他原則

  • 當使用者找到他們正在尋找的內容時,他們就會停止尋找。 它們不會查看可能找到的物件,因為它們不需要。 這些使用者可能會假設他們找到的第一個路徑是唯一的路徑。
  • 用戶無法在大型複雜樹狀結構中尋找物件。 使用者不會執行詳盡的手動搜尋,以尋找這類樹狀結構中的物件;一旦他們認為他們花費了合理的努力,他們就停止了。 因此,大型複雜樹狀結構需要與其他存取方法補充,例如文字搜尋、索引或篩選。
  • 某些程式可讓使用者建立自己的樹狀結構。 雖然這類自我設計的樹狀結構可能與使用者的精神模型一致,但通常會隨意且維護不佳。 例如,雖然檔系統、電子郵件程式和我的最愛清單通常會儲存類似的資訊類型,但使用者很少費心以相同方式組織資訊。

如果你只做一件事...

仔細權衡使用樹視圖的優點和缺點。 使用階層式排列的數據並不表示您需要使用樹視圖。

使用模式

樹檢視有數種使用模式:

用法
只有容器節點的樹視圖
用戶可以一次檢視及與一個容器互動。
一般而言,這些樹視圖具有相關聯的控件,可顯示所選容器的內容,讓使用者一次只能與一個容器互動。
容器窗格和內容窗格的螢幕快照
在此範例中,樹視圖只有容器節點。 選取節點的內容會顯示在相關聯的清單檢視控件中。
具有容器和分葉節點的樹視圖
用戶可以檢視容器和離開並與其互動。
通常,這些樹視圖具有相關聯的控件,可顯示所選容器或分葉的內容。 允許使用者與分葉互動,通常會需要支援多個選取專案。
樹檢視窗格和內容窗格的 螢幕快照
在此範例中,樹視圖同時具有容器和分葉節點。 因為支援多個選取專案,因此開啟的項目內容會使用相關聯控件中的 索引卷標來顯示
或者,樹檢視可以有一個有組織的清單,其中容器是標題,而葉子是選項。
具有標題和選項的樹視圖 螢幕快照
在此範例中,樹葉是選項,而容器是選項類別。
複選框樹視圖
用戶可以選取任意數目的專案,包括無專案。
複選框清楚地指出多個選取專案是可能的。 當多重選取是必要或常用的時,請使用此樹狀結構模式。
具有複選框的樹視圖 螢幕快照
在此範例中,複選框樹視圖允許選取功能來開啟或關閉。
樹檢視產生器
用戶可以一次新增一個容器或分葉來建立樹狀結構,並選擇性地設定順序。
用戶可以建立或修改許多樹狀結構。 有些樹狀結構是使用作功能表和拖放功能來建置的(例如 Windows 檔案總管中的資料夾),而其他樹狀結構則是使用特殊對話框來建置(例如 Windows Internet Explorer 中的我的最愛清單)。
[我的最愛] 對話框 螢幕快照
在此範例中,使用者可以使用對話框來建置自己的我的最愛清單。
使用替代存取方法 樹視圖
用戶可以使用階層式樹狀結構以外的方式尋找物件。
如先前所述,用戶無法在大型複雜樹狀結構中尋找物件,因此這類樹狀結構應該補充其他存取方法,例如文字搜尋、索引或篩選。
內容、索引和我的最愛索引標籤的螢幕快照
在此範例中,使用者也可以使用目錄、索引和我的最愛來存取資訊。 對於某些使用者,索引和搜尋索引標籤比內容索引標籤更有用。
windows 開始功能表和搜尋方塊的螢幕快照
在此範例中,Windows [開始] 功能表也可讓使用者在 [搜尋] 方塊中輸入部分名稱,來存取程式、檔案和網頁。

指引

介紹

  • 在容器內,以邏輯順序排序專案。 依字母順序排序名稱、數值順序的數位,並以時間順序排序日期。

  • 使用 [永遠顯示選取專案] 屬性,讓使用者可以輕鬆地判斷選取的專案,即使控件沒有輸入焦點也一樣。

  • 如果樹狀結構是做為目錄,請使用 Single Expand 屬性來簡化樹狀結構的管理。 如此一來,只會展開樹狀結構的相關部分。

  • 避免呈現空的樹狀結構。 如果使用者建立樹狀結構,請使用使用者可能需要的指示或範例專案來初始化樹狀結構。

    internet explorer 我的最愛清單 螢幕快照

    在此範例中,清單一開始會顯示範例。

  • 如果用戶沒有理由折疊這些節點,請勿讓容器節點折疊。 這樣做會增加不必要的複雜性。

  • 如果負載效能是問題,則預設只會顯示樹狀結構的第一層和第二層容器。 然後,當使用者展開樹狀結構中的分支時,您可以視需要載入其他數據。

  • 如果使用者展開或折疊容器,請讓該狀態持續存在,以便在樹視圖下次顯示時生效,除非使用者可能偏好以默認狀態啟動。 持續性應以每一樹狀目錄檢視為基礎,以每個用戶為基礎。

  • 如果高階容器有類似的內容,請考慮使用視覺線索來區分它們。

    不正確:

    具有不同圖示的 Outlook 項目的螢幕快照

    在此範例中,信箱和封存資料夾有類似的內容。 一旦樹狀結構進一步展開,使用者很難知道樹狀結構中的位置,導致混淆。 在不同的區段中使用稍微不同的圖示可解決此問題。

  • 重新考慮連接線路。 雖然這幾行清楚地顯示容器和分葉節點之間的關聯性,但它們會新增視覺雜亂,而不會大幅協助理解。 具體來說,當節點接近時,它們並無濟於事,也不會在節點相距這麼遠時有所説明,而需要捲動。

    正確:

    具有連接線的樹視圖 螢幕快照

    更好:

    樹視圖的 螢幕快照,而不連接線條

    連接線很少有助於理解。

互動

  • 請考慮提供按兩下行為。 按兩下應該與選取項目並執行其預設命令相同。

  • 請讓雙擊行為備援。 應該一律會有具有相同效果的命令按鈕或作功能表命令。

  • 如果專案需要進一步說明,在資訊提示中提供說明,

    具有一個專案資訊提示的我的最愛螢幕快照

    在此範例中,資訊提示會提供進一步的資訊。

  • 提供相關命令的內容功能表。 這類命令包括剪下、複製、貼上、移除或刪除、重新命名和屬性。

  • 停用樹檢視時,也停用任何相關聯的標籤和命令按鈕。

樹狀結構組織

  • 使用大部分使用者熟悉的自然階層式結構。
  • 如果您無法使用這類結構,請嘗試平衡可探索性與可預測的使用者模型,以將混淆降到最低。
  • 若要安全地改善可探索性,請在:
    • 該專案與任何其他類似的項目無關(因此使用者不會因為不正確的關聯而混淆)。
    • 只有少數這類多餘的專案(因此樹狀結構不會膨脹)。
  • 使用最簡單且運作良好的階層式結構。 若要這樣做:
    • 將最常存取的物件放在樹狀結構的前兩個層級(不計算根節點),並將較不常存取的物件放在階層中。
    • 消除不必要的或結合備援的中繼層級容器。
  • 偏好廣度而不是深度。 在理想情況下,樹狀結構應該不超過四個層級,而且最常存取的對象應該出現在前兩個層級中。
  • 判斷您是否真的需要根節點。 如果使用者需要在整個樹狀結構上執行命令的能力,請提供根節點(可能使用根節點上的作功能表)。 否則,樹狀結構會更簡單且更容易使用,而不需要它。
  • 如果樹狀結構具有替代的存取方法,例如文字搜尋或索引,請將焦點放在最有用的內容上,將樹狀結構優化以進行流覽。 使用替代存取方法時,樹狀結構的內容不一定是完整的。 簡化樹狀結構,讓使用者更容易找到最有用的內容。

複選框樹檢視

  • 顯示清單下方選取的項目數目,特別是如果使用者可能選取數個專案。 此意見反應可協助使用者確認其選擇正確無誤。

    選取項目數目的螢幕快照

    在此範例中,選取的項目數目會顯示在樹狀結構下方。 很明顯,未選取兩個專案。

  • 如果可能有許多項目並選取或清除所有專案,請新增 [全部選取] 和 [清除所有命令] 按鈕。

  • 使用混合狀態複選框來指出容器中專案的部分選取專案。

    正確:

    具有混合狀態複選框的視窗螢幕快照

    在此範例中,會使用混合狀態複選框來表示部分選取。

樹視圖重設大小和間距 螢幕快照

建議針對樹視圖控件重設大小和間距。

  • 選擇樹視圖寬度,以避免在樹狀結構完全展開時,大部分專案需要水平卷動

  • 包含額外 30% 以容納當地語系化。

  • 選擇不需要垂直捲動的樹視圖高度。 如果這樣做可減少垂直滾動條的需求,請考慮讓樹視圖稍微長一點(或更多,如果有可用空間)。

    不正確:

    簡短、窄樹視圖控件的螢幕快照

    在此範例中,讓樹視圖稍微寬一點,且較長會消除大部分情況下的滾動條。 在此特定樹狀結構中,一次只能開啟一個容器。

  • 如果使用者受益於讓樹視圖變大,請將樹視圖及其父窗口調整為可重設大小。 這麼做可讓用戶視需要調整樹視圖大小。

標籤

控件標籤

  • 所有樹檢視都需要標籤。 將卷標撰寫為單字或片語,而非句子、以冒號結尾,並使用 靜態文字

  • 指派唯一的存取金鑰。 如需指派指導方針,請參閱 鍵盤

  • 使用句子樣子大寫。

  • 將標籤放置在控件上方,並將標籤對齊控件的左邊緣。

  • 若為多重選取範圍樹視圖,請撰寫標籤,以便清楚有多個選取範圍。 複選框樹視圖標籤可能較不明確。

    不正確:

    具有元件標籤的樹檢視 螢幕快照

    在此範例中,標籤不會提供多個選取範圍的相關信息。

    更好:

    具有「一或多個」卷標的樹視圖螢幕快照

    在此範例中,標籤清楚地指出多個選取專案是可能的。

    最佳:

    具有複選框的樹視圖 螢幕快照

    在此範例中,複選框會清楚指出有多個選取專案,因此標籤不一定明確。

數據文字

  • 使用句子樣子大寫。

指示文字

  • 如果您需要新增樹視圖的相關指示文字,請在標籤上方新增。 使用完整的句子搭配結尾標點符號。

  • 使用句子樣子大寫。

  • 補充說明是有説明但不需要的,應該保持簡短。 如果使用 而不是標籤,或位於控件下方,請將此資訊放在標籤和冒號之間的括弧中。

    樹視圖下方說明的 螢幕快照

    在此範例中,補充說明位於 控件下方。

文件

參考樹檢視時:

  • 使用確切的標籤文字,包括其大寫,但不包含訪問鍵底線或冒號。 如果內容需要區分一般清單,請包含單字清單或階層式清單。
  • 針對樹狀專案,請使用確切的專案文字,包括其大寫。
  • 只有在程序設計和其他技術檔中,才能將樹視圖視為樹視圖。 在其他地方,使用清單或階層式清單,因為字詞樹狀結構對大多數使用者造成混淆。
  • 若要描述用戶互動,請針對數據使用 select,然後展開和折疊加號和減號按鈕。
  • 可能的話,請使用粗體文字格式化標籤和樹狀專案。 否則,只有在需要防止混淆時,才將標籤和專案放在引號中。

範例:在 [內容] 清單中,選取 [使用者介面設計]。

參考樹檢視中的複選框時:

  • 使用確切的標籤文字,包括其大寫,並包含文字複選框。 請勿包含訪問鍵底線。
  • 若要描述用戶互動,請使用 select 和 clear。
  • 可能的話,請使用粗體文字格式化標籤。 否則,只有在需要防止混淆時,才將標籤放在引號中。

範例:在要備份 清單的 [ 專案] 清單中,選取 [我的檔] 複選框。