實作自訂分類和顯示的項目
控制項的字型,並以其文字的色彩,可以提供 VSPackage Visual Studio整合式的開發環境 (IDE) 透過自訂分類和顯示的項目。
自訂分類和顯示的項目位於字型和色彩屬性頁。 若要開啟字型和色彩 屬性頁,在 工具 ] 功能表中,按一下 選項。 展開環境 ,然後按一下 [ 字型和色彩。
當使用這項機制,就必須實作 VSPackages IVsFontAndColorDefaultsProvider介面和其相關聯的介面。
原則上,這項機制可以用來修改現有的所有顯示項目 和 類別 ,它包含它們。 不過,它不應修改文字編輯器類別 或其 顯示項目。 如需詳細資訊,請參閱 字型和色彩概觀。
若要實作自訂類別 或 顯示項目,VSPackage 必須:
建立或找出登錄中的類別。
IDE 的實作字型和色彩屬性頁會使用此資訊來正確查詢服務支援指定的類別。
建立或識別群組 (可省略) 在登錄中。
它可以用來定義一組,代表兩個或多個類別的聯集。 如果群組定義中,IDE 會自動合併子類別,並將顯示在群組中的項目。
IDE 支援的實作。
處理字型和色彩的變更。
如需詳細資訊,請參閱 存取預存的字型和色彩設定。
若要建立或識別類別
建構一種特殊類型的分類下的登錄項目 [HKLM\SOFTWARE\Microsoft \Visual Studio\< Visual Studio 版本 >\FontAndColors\<Category>
<Category> 是類別的非當地語系化名稱。
填入登錄中的,以兩個值:
名稱
型別
資料
描述
分類
REG_SZ
GUID
建立用來識別類別的 GUID。
封裝
REG_SZ
GUID
VSPackage 服務支援類別的 GUID。
在登錄中指定的服務必須提供實作的IVsFontAndColorDefaults的相對應的分類。
若要建立或識別群組
建構一種特殊類型的分類下的登錄項目 [HKLM\SOFTWARE\Microsoft \Visual Studio\< Visual Studio 版本 >\FontAndColors\<group>
<group> 群組的非當地語系化名稱。
填入登錄中的,以兩個值:
名稱
型別
資料
描述
分類
REG_SZ
GUID
建立用來識別群組的 GUID。
封裝
REG_SZ
GUID
服務支援類別的 GUID。
在登錄中指定的服務必須提供實作的T:Microsoft.VisualStudio.Shell.Interop.IVsFontAndColorGroup對應的群組。
若要實作 IDE 支援
實作GetObject,其中一個傳回的IVsFontAndColorDefaults介面或T:Microsoft.VisualStudio.Shell.Interop.IVsFontAndColorGroup介面,以針對每個 IDE 類別或群組所提供的 GUID。
針對每個類別它支援、 VSPackage 實作的個別執行個體IVsFontAndColorDefaults介面。
方法是透過實作IVsFontAndColorDefaults必須提供利用 IDE:
列出的顯示項目 在 類別。
可當地語系化的名稱,如顯示項目。
顯示每個成員的資訊類別。
注意事項
每個類別 必須至少包含一個 的顯示項目。
IDE 會使用T:Microsoft.VisualStudio.Shell.Interop.IVsFontAndColorGroup介面,以定義數種類別的聯集。
它的實作會提供與 IDE:
一份類別 ,包含指定的群組。
存取執行個體的IVsFontAndColorDefaults支援每個類別群組內。
可當地語系化的群組名稱。
更新 IDE:
IDE 會快取資訊的相關字型和色彩設定。 因此之後在 ide 所做的任何修改, 字型和色彩組態中,最好也能確定快取是最新狀態。
更新快取會透過IVsFontAndColorCacheManager介面,且可執行全域或只對選取的項目。
若要處理的字型和色彩變更
若要適當地支援 VSPackage 所顯示的文字的顏色標示,支援 VSPackage 的顏色標示服務必須回應所造成的使用者啟動的變更字型和色彩內容] 頁面。 VSPackage 的運作方式:
藉由實作處理 IDE 所產生的事件IVsFontAndColorEvents介面。
IDE 會呼叫適當的方法,之後使用者修改的字型和色彩頁面。 比方說,它會呼叫OnFontChanged方法,如果已選取 [新的字型。
-或-
輪詢變更 IDE。
這可以透過系統實作IVsFontAndColorStorage介面。 雖然主要目的是為了支援保存性, GetItem方法可用來取得字型和色彩資訊顯示項目。 如需詳細資訊,請參閱 存取預存的字型和色彩設定。
注意事項
為了確保可以藉由輪詢結果是否正確,可能適用於IVsFontAndColorCacheManager介面,以判斷快取排清及更新程式會呼叫擷取方法的需要IVsFontAndColorStorage介面。
請參閱
工作
參考
IVsFontAndColorDefaultsProvider