適用於 Visual Studio 的功能表和命令
命令使用方式
與 Microsoft Office 不同,這是由許多個別產品組成的套件,Visual Studio 包含許多產品,每個產品都會將其命令集貢獻至全域 Visual Studio IDE。 IDE 會根據內容篩選使用者可用的功能,以管理數千個命令的複雜性。
當使用者的內容變更時,例如從設計視窗切換至程式代碼編輯視窗 -與新內容無關的功能就會消失。 同時,新功能會與相關的動態資訊一起浮出水面,例如 [屬性] 和 [工具箱] 選項。 使用者不應該注意到可用命令集的交換。 如果使用者因命令出現或消失而分心或混淆,則 UI 設計需要調整。 使用者的目前內容一律以一或多個方式表示,例如 IDE 標題欄中、屬性視窗 或 [屬性頁] 對話方塊。
命令行允許 UI 中的彈性。 Visual Studio 環境固有的唯一命令結構是主功能表和主要命令行,這兩者都可以自定義甚至隱藏。 其他命令行會根據應用程式的狀態顯示並消失。 工具視窗和文件編輯器也可以在其窗口邊緣中包含內嵌工具列。
基本指導方針
盡可能使用現有的共用命令、命令群組和功能表。
由於命令通常會根據內容顯示,因此使用現有的共用功能表和命令群組可確保命令結構在內容中的變更之間保持相對穩定。 重複使用共用命令,並將新命令放在接近相關共享命令附近,也會降低IDE的複雜性,並建立更方便使用的體驗。 如果需要定義新的命令,請嘗試將它放在現有的共用命令群組中。 如果需要定義新的群組,請在建立新的最上層功能表之前,將它放在靠近相關命令群組的現有共享功能表中。
請勿為每個命令建立圖示。
在建立命令圖示之前,請仔細思考。 應該只針對下列命令建立圖示:
會出現在預設工具列上。
使用者可能會透過 [自定義... ] 對話框將使用者新增至工具列。
在另一個 Microsoft 產品中,有與相同動作相關聯的圖示。
限制新增鍵盤快捷方式
絕大多數使用者都使用一小部分可用的快捷方式。 如有疑問,請勿將功能系結至鍵盤快捷方式。 在新增快捷方式之前,請先與您的用戶體驗小組合作。
提供命令的預設功能表位置。
請注意,您的命令將由其他人自定義,並據以設計它們。 沒有隱藏命令之類的專案。 所有 Visual Studio 命令都會出現在 [工具自定義] 對話框、[命令視窗]、[自動完成]、[工具>選項>鍵盤] 對話框和 [開發工具>環境] 中。 請務必在 .linux 檔案中提供命令名稱和工具提示,讓使用者可以輕鬆地找到它們。
請勿在內嵌工具列上複製共用命令。
將命令放在使用者焦點區域附近時很有用。 若要這樣做,其中一個方法是在工具視窗或文件編輯器頂端建立內嵌工具列。 放在工具列上的命令應該專屬於視窗內的內容區域。 請勿複製這些工具列上的共享命令。 例如,絕對不要在內嵌工具列內放置「儲存」圖示。
內容和命令可見性
命令存在於下列範圍: 環境、 階層和 檔。 瞭解每個範圍,以便有信心放置命令。
環境範圍中的命令會建立主要內容,並在多個內容之間共用。 它們會改變檔和工具視窗的可見度或排列方式。 在環境範圍的命令中,有新增專案、連線 至伺服器、附加進程、剪下、複製、貼上、尋找、選項、自定義、新增視窗和檢視說明。
階層範圍中的命令會管理 Visual Studio 中的階層,包括 Project、Team 和 Data。 它們與專案的子內容相關,例如偵 錯、 建置、 測試、 架構或 分析。 階層範圍中的命令包括 [新增專案]、[新增查詢]、[專案 設定]、[新增數據源]、[啟動效能精靈] 和 [新增圖表]。
檔範圍中的命令會處理檔的內容,例如程式代碼、設計或工作項目查詢 (WIQ)。 它們也會在工具視窗的檢視上採取行動,或是該工具視窗的特定檢視。 檔範圍命令也會處理本身為階層特定的檔案物件,例如 從 Project 移除。 檔案範圍中的指令包括重構重新命名、建立工作項目的複本、展開全部、全部折疊和建立使用者工作。>
命令放置決策
決定建立命令之後,您必須判斷其適當的位置,以及是否要建立鍵盤快捷方式。 請遵循此決策路徑來建立要放置命令的位置:
Visual Studio 中命令放置的決策路徑
功能表的命令放置
主功能表列
主功能表列應該是任何參與UI之內容特定功能表套件命令的標準位置。 主功能表列與其他命令結構不同,因為環境會用它來控制可見的命令。 所有其他命令行只會停用內容不足的命令,無論是放在功能表或工具列上。
環境會定義一組內建於主要功能表欄的命令,這些命令在整個IDE和多個工作域中都是通用的。 不論哪些 VSPackage 已載入環境,這些命令一律都會顯示。 雖然 VSPackages 可以擴充這組命令,但每個產品的命令集及其命令的位置都是每個小組的責任。
Visual Studio 主選單的結構可細分為下列功能表類別:
核心功能表
檔案
編輯
檢視
工具
Window
Help
專案特定功能表
Project
Build
偵錯
內容特定功能表
Team
資料
Test
架構
分析
檔特定功能表
格式
Table
設計主選單時,請遵循下列規則:
不要超過指定內容中的 25 個最上層專案
功能表的高度不得超過 600 像素。
在多個內容中評估主功能表,例如在 Ultimate SKU 和一般配置檔中。
飛出視窗功能表是可以接受的。
飛出視窗功能表應包含至少三個專案,且不超過七個專案。
飛出視窗功能表應該只會深入一層 - 某些 Visual Studio 功能表項具有級聯子功能表,但不建議使用此模式。
使用不超過六個分隔符。 群組應遵循下圖:
雖然不需要在圖表中設定每個群組,但會限制新增其他群組。
每個群組都應該有兩到七個功能表項。
主功能表順序
新增最上層專案之前,請考慮將命令放在現有的最上層功能表中。 新增最上層功能表時,請務必將它放在正確的位置。 決定功能表是否專屬於專案、內容或檔。 將最上層功能表的名稱保持簡潔,並且只使用一個單字。
核心功能表應該會預訂其餘的命令。 [檔案]、[編輯] 和 [檢視] 應該一律在左邊,而 [工具]、[視窗] 和 [說明] 應該一律在右邊。
操作功能表
將太多功能放在操作功能表中會導致難以學習的介面。 所有主要功能都應該透過主功能表欄提供。 命令的位置應該與現有的命令協調,以避免重複的命令。 對於操作功能表,殼層會定義應該包含的標準功能表群組,視操作功能表是針對方案、專案節點或項目專案而定。
設計操作功能表時,請遵循與主功能表相同的規則,此外:
請勿超過 25 個最上層功能表項。
飛出視窗功能表是可接受的,但不能超過一層深 - 絕不使用級聯飛出視窗。
使用不超過六個分隔符。
工具列中的命令放置
一般工具列
設計及排列工具列時,請遵循下列標準:
不要每個按鈕使用一個以上的動詞。 一個按鈕 = 一個動作。
只有在需要加固標籤時,才能將文字與圖示一起使用。
針對將在一個會話中多次切換的屬性,使用下拉式方塊。 否則,請在別處公開 屬性。
下拉式方塊的寬度應該等於方塊中最長專案的寬度 + 30%。 例如,如果最長的專案是 200 像素,則下拉式方塊應該寬 260 圖元。
限制分隔符的使用。 下拉式清單旁邊的分隔符使用是反模式,因為下拉式清單本身的形狀會做為視覺分隔符。
圖示群組應該包含三到六個圖示。
如果限定符產生多個有用的命令,請使用儲存最後一個設定的分割按鈕:
分割按鈕的範例。 左邊的六個命令可以改為放入單一按鈕中。
產品特定的工具列
每個產品都可以提供包含常用和重要命令的預設工具列,而且每個產品的預設工具列應該會在安裝產品之後第一次啟動Visual Studio時出現。
產品也應該利用 IDE 所提供的共用命令群組和功能表。 每個共用命令群組都會放在共用功能表中,以便為使用者以有意義的方式組織相關的命令。 請務必利用這個共用命令結構來降低複雜度。
全域工具列
全域工具列必須符合現成的一個數據列。 建立新的全域工具列時,請遵循該工具列類型的指導方針。
一般工具列指導方針:
每個工具列在通用控件中都有 24 像素(夾克器、溢位)。
每個工具列按鈕寬 22 圖元,包括邊框間距。 將圖示設定為分割按鈕會新增11像素的寬度。
允許跨工具列重複命令。
當特定檔類型為使用中,當不同的檔類型變成使用中時,就會顯示檔特定的工具列 。
檔特定的工具列可能不超過12個按鈕。
工具列的總寬度可能不會超過 300 像素。
每個檔案類型都可以有一個內嵌工具列或一個檔特定的全域工具列,但不能同時包含兩者。
設定特定內容時,會出現內容特定的工具列 ,而且通常會長時間保持作用中。
所有內容特定工具列的按鈕限制為18。
如果大部分的使用者在使用中內容時,不會一致地採用此工具列的命令,則請勿將此工具列與內容產生關聯。
確定工具列在結束內容時消失。 這些工具列都不應該出現在啟動時。
沒有內容的 工具列永遠不會自動出現。 這些只會在使用者啟用時顯示。 將寬度上限保持在 200 像素以下。
一般組織和殼層定義群組
使用現有的共用命令、命令群組和功能表。 如果需要定義新的命令,請嘗試將它放在現有的共用命令群組中。 如果需要定義新的群組,請嘗試將它放在靠近相關命令群組的現有共用功能表中,再建立新的最上層功能表。 這樣可減少命令複雜性,同時確保 IDE 中的命令放置一致。
共用 格式 功能表通常顯示在設計工具樣式文檔視窗的內容中,如下圖所示:
Visual Studio 中的功能表群組
減少和重複使用命令
命令通常會根據內容顯示,以減少使用者在任何指定時間看到的命令數目。 不過,您也應該重複使用現有的共用功能表和命令群組,以確保命令結構在內容中的變更之間保持相對穩定。
重複使用共用命令,並將新的命令放在接近相關共享命令的附近,可減少IDE的複雜性,並建立更方便使用者使用的體驗。
命名命令
命名規範
一致的命令命名非常重要,讓使用者可以使用命令行或系結至鍵盤快捷方式來尋找和執行命令。 命令名稱也可協助使用者瞭解命令在工具列上或級聯或操作功能表中顯示命令時會提供什麼用途。
命名命令時:
建構文字,使其易於當地語系化。 如需當地語系化文字的詳細資訊,請參閱 當地語系化最佳做法。
簡潔。 命令應該使用不超過三個單字。
使用標題大小寫大寫:每個單字的第一個字母都應該大寫。 如需 Visual Studio 中文字格式設定的詳細資訊,請參閱 文字樣式。
考慮將放置命令的位置。 它是在最上層功能表或飛出視窗嗎? 例如,在飛出視窗中將對齊命令分組時,最上層命令應該是 “Align”,飛出視窗命令應該是 “Left”、“Right”、“Center”、“Justify” 等等。 將飛出視窗命令命名為 「靠左對齊」或「靠右對齊」是多餘的。
搭配命令使用圖示
請謹慎使用與命令的圖示配對。 雖然將唯一影像與命令產生關聯,但用戶能夠識別該命令,但圖像過度使用時會發生視覺雜亂和效率不佳。 下列規則有助於決定是否要建立命令圖示。
只有在下列專案時,才使用具有命令的圖示:
相同的命令在另一個突出的 Microsoft 產品中有與其相關聯的圖示,例如其中一個 Microsoft Office 應用程式 lications。
命令會放在預設工具列中。
此命令是一個特殊命令,使用者可能會使用 [自定義... ] 對話框新增至工具列。
存取和快捷鍵
鍵盤按鍵指派有兩種:
訪問鍵 (也稱為快捷鍵)允許透過功能表進行鍵盤存取,以便命令和對話框 UI 中的每個標籤。 訪問鍵主要是為了輔助功能用途,會指派給所有功能表和大部分的對話框控件,不是要記住的,只會影響目前的視窗,而且會當地語系化。
快捷鍵 大多使用 Control (Ctrl) 和 Function (Fn) 鍵序列。 其設計更適用於進階使用者,並協助提高生產力。 它們只會指派給最常使用的命令,並允許在略過主功能表時快速存取。 快捷鍵是要記住的,因此必須指派與配置檔配置一致的原因。 快速鍵配置可能會因配置檔而異。 用戶可透過 [工具 > 選項 > ] 鍵盤自定義快速鍵。
指派存取金鑰
訪問鍵是由Alt加上英數位元索引鍵所組成。 將存取鍵指派給每個功能表項,而不會例外。 遵循 Windows 和指派存取金鑰的常見慣例。 例如,檔案新增的存取金鑰應一律為 Alt、F、N。 >
請勿使用單圖元寬度字母,例如 'i' (以大寫或小寫)或小寫 'l',並避免使用字元與下階字元(g、j、p、q 和 y),因為這些字元難以區分。
盡可能避免使用重複的索引鍵。 在無法避免重複的情況下,功能表系統會循環處理所有使用索引鍵的命令,以處理衝突。 例如,在 [檔案] 功能表下的假設 「Number」 命令中,複製 「N」 訪問鍵 Alt、F、N 會建立新的檔案,而 Alt、F、N、N 會執行 「Number」 命令。
指派快捷鍵
避免指派新的快捷鍵,因為如果過度使用,則不需要對系統(和用戶記憶體)徵稅。 客戶經驗改進計劃 (CEIP) 的數據表示 Visual Studio 使用者只使用整合式快捷方式的一小部分。
定義快捷方式時,請遵循下列規則:
使用 Control (Ctrl) 和 Function (Fn) 按鍵序列。
保留常用的快捷方式。 維護最受歡迎的快捷方式。
讓編輯器快捷方式易於輸入。 將容易類型的快捷方式系結至開發人員在撰寫程式代碼時所需的命令。 例如, Edit.InvokeSmartTag 必須有像是 Ctrl+/ 的快速快捷鍵,而不是 Alt+Shift+F10。
努力尋找一致的主題快捷方式。
遵循 Windows 指導方針來判斷要採用的修飾詞索引鍵。 針對具有大規模效果的命令使用 Ctrl 鍵組合,例如套用至整份文件的命令。 針對擴充或補充標準快速鍵動作的命令使用 Shift 鍵組合。 請勿使用 Ctrl+Alt 組合。
拿掉多餘的快捷方式。 如果您有舊版功能,請考慮移除與極端不頻繁(CEIP 數據少於 10 次)或中度不頻繁(CEIP 數據少於 100 次)搭配使用的快捷方式,如果存取密鑰提供相同命令的快速存取。 例如:Alt、H、C 會開啟說明/內容。
沒有簡單的方法來檢查快捷方式可用性。 如果您想要新增快捷方式,請遵循下列步驟:
檢查 Visual Studio 2013 快捷方式清單,以判斷是否有類似的命令可供您分組。
移至 [ 工具 > 選項 > 環境 > 鍵盤 ] 並測試您的快捷方式。 檢查 [套用下列其他鍵盤對應配置] 底下所列的每個鍵盤對應配置。檢查 [一般]、[C#]、[VB] 和 [C++] 配置檔,因為這些配置檔共用唯一的快捷方式。 如果您的快捷方式未對應到任何位置,則您的快捷方式可供使用。