Visual Studio 內容會決定哪些命令可供使用。 內容可能會根據目前的專案、目前的編輯器、載入的 VSPackage 以及整合式開發環境 (IDE) 的其他層面而變更。
命令內容
下列命令內容是最常見的:
IDE:IDE 提供的命令一律可用。
VSPackage:VSPackage 可以定義何時顯示或隱藏命令。
專案:專案指令只會針對目前選取的專案顯示。
編輯器:一次只能有一個編輯器處於作用中狀態。 可以使用使用中編輯器中的命令。 編輯器與語言服務密切合作。 語言服務必須在相關聯編輯器的內容中處理其命令。
檔案類型:編輯器可以載入多種類型的檔案。 可用的命令可能會根據檔案類型而變更。
作用中視窗:最後一個作用中的文件視窗會設定按鍵繫結的使用者介面 (UI) 內容。 不過,具有類似於內部 Web 瀏覽器的按鍵繫結資料表的工具視窗也可以設定 UI 內容。 對於多索引標籤文件視窗,例如 HTML 編輯器,每個索引標籤都有不同的命令內容 GUID。 註冊工具視窗後,它始終可在 [檢視 ] 功能表上使用。
UI 內容:UI 內容是由類別的 VSConstants.UICONTEXT 值所識別,例如, SolutionBuilding_guid 建置解決方案時,或 Debugging_guid 偵錯工具處於作用中狀態時。 多個 UI 內容可以同時處於作用中狀態。
定義自訂情境 GUID
如果尚未定義適當的命令內容 GUID,您可以在 VSPackage 中定義一個 GUID,然後視需要將它編程為作用中或非作用中,以控制命令的可見度:
呼叫 GetCmdUIContextCookie 方法來註冊內容 GUID。
請呼叫 IsCmdUIContextActive 方法以取得內容 GUID 的狀態。
使用呼叫SetCmdUIContext方法來開啟或關閉上下文GUID。
謹慎
請確保您的 VSPackage 不會干擾任何現有的內容 GUID,因為其他 VSPackage 可能依賴它們。