VSIX 色彩編譯器
Visual Studio 延伸模組色彩編譯程式工具是一種控制台應用程式,其採用 .xml 檔案來代表現有 Visual Studio 主題的色彩,並將它覆蓋至 .pkgdef 檔案,讓這些色彩可用於 Visual Studio。 由於比較 .xml 檔案之間的差異很容易,所以此工具對於在原始檔控制中管理自定義色彩很有用。 它也可以連結至組建環境,讓組建的輸出是有效的 .pkgdef 檔案。
主題 XML 架構
完整的主題 .xml 檔案看起來像這樣:
<Themes>
<!—one or Theme elements -->
<Theme>
<!-- one or more Category elements -->
<Category>
<!-- one or more Color elements -->
<Color>
<!-- zero or one Background element -->
<Background />
<!-- zero or one Foreground element -->
<Foreground />
</Color>
</Category>
</Theme>
</Themes>
主題
<Theme> 元素會定義整個主題。 主題必須至少包含一個 <Category> 元素。 主題元素的定義如下:
<Theme Name="name" GUID="guid">
<!-- one or more Category elements -->
</Theme>
屬性 | [定義] |
---|---|
名稱 | [必要]主題的名稱 |
GUID | [必要]主題的 GUID (必須符合 GUID 格式設定) |
建立 Visual Studio 的自訂色彩時,必須針對下列主題定義這些色彩。 如果特定主題沒有任何色彩存在,Visual Studio 會嘗試從淺色主題載入遺漏的色彩。
主題名稱 | 主題 GUID |
---|---|
淺色 | {de3dbbcd-f642-433c-8353-8f1df4370aba} |
深色 | {1ded0138-47ce-435e-84ef-9ec1f439b749} |
藍色 | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
高對比 | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
類別
<Category> 元素會定義主題中的色彩集合。 類別名稱會提供邏輯群組,而且應該盡可能窄地定義。 類別必須包含至少一個 <Color> 元素。 類別項目的定義如下:
<Category Name="name" GUID="guid">
<!-- one or more Color elements -->
</Category>
屬性 | [定義] |
---|---|
名稱 | [必要]類別的名稱 |
GUID | [必要]類別的 GUID (必須符合 GUID 格式設定) |
色彩
<Color> 元素會定義UI元件或狀態的色彩。 色彩的慣用命名配置是 [UI 類型] [State]。 請勿使用 「color」 一詞,因為它是多餘的。 色彩應該清楚指出要套用色彩的項目類型和情況或「狀態」。 色彩不得為空白,而且必須包含 Background> 和 Foreground> 元素的其中一個或兩者<<。 色彩元素的定義如下:
<Color Name="name">
<Background /> <!-- zero or one Background element -->
<Foreground /> <!-- zero or one Foreground element -->
</Color>
屬性 | [定義] |
---|---|
名稱 | [必要]色彩的名稱 |
背景和/或前景
Background <> 和 <Foreground> 元素會定義 UI 元素背景或前景的色彩值和類型。 這些項目沒有子系。
<Background Type="type" Source="int" />
<Foreground Type="type" Source="int" />
屬性 | [定義] |
---|---|
類型 | [必要]色彩的類型。 可以是下列其中一項: CT_INVALID: 色彩無效或未設定。 CT_RAW: 原始ARGB值。 CT_COLORINDEX: 請勿使用。 CT_SYSCOLOR: 來自 SysColor 的 Windows 系統色彩。 CT_VSCOLOR: 來自__VSSYSCOLOREX的Visual Studio色彩。 CT_AUTOMATIC: 自動色彩。 CT_TRACK_FOREGROUND: 請勿使用。 CT_TRACK_BACKGROUND: 請勿使用。 |
來源 | [必要]以十六進位表示之色彩的值 |
type 屬性中的架構支援__VSCOLORTYPE列舉支援的所有值。 不過,我們建議您只使用 CT_RAW 和 CT_SYSCOLOR。
全部結合在一起
這是有效主題 .xml 檔案的簡單範例:
<Themes>
<Theme Name="Light" GUID="{de3dbbcd-f642-433c-8353-8f1df4370aba}">
<Category Name="MyCategory" GUID="{0A96238B-70CE-4479-9170-EECEAA3FCD58}">
<Color Name="MyActiveBorder">
<Background Type="CT_RAW" Source="FFCCCEDB" />
</Color>
</Category>
</Theme>
</Themes>
如何使用工具
語法
VsixColorCompiler <XML 檔案><PkgDef 檔案><選用 Args>
引數
切換名稱 | 注意事項 | 必要或選擇性 |
---|---|---|
未命名 (.xml 檔案) | 這是第一個未命名的參數,也是要轉換之 XML 檔案的路徑。 | 必要 |
未命名 (.pkgdef 檔案) | 這是第二個未命名的參數,而且是所產生 .pkgdef 檔案的輸出路徑。 默認值:<XML Filename.pkgdef> |
選擇性 |
/noLogo | 設定此旗標會停止列印產品和著作權資訊。 | 選擇性 |
/? | 列印出說明資訊。 | 選擇性 |
/help | 列印出說明資訊。 | 選擇性 |
範例
VsixColorCompiler D:\xml\colors.xml D:\pkgdef\colors.pkgdef
VsixColorCompiler D:\xml\colors.xml /noLogo
備註
此工具需要安裝最新版的 VC++ 執行時間。
僅支援單一檔案。 不支援透過資料夾路徑進行大量轉換。
您可以在 中找到此工具
<VS Install Path>\VSSDK\VisualStudioIntegration\Tools\Bin\
範例輸出
工具所產生的 .pkgdef 檔案會類似下列索引鍵:
[$RootKey$\Themes\{de3dbbcd-f642-433c-8353-8f1df4370aba}\Environment]
"Data"=hex:3a,00,00,00,0b,00,00,00,01,00,00,00,c3,d9,4e,62,fd,bd,fa,41,96,c3,7c,82,4e,a3,2e,3d,01,00,00,00,0c,00,00,00,41,63,74,69,76,65,42,6f,72,64,65,72,01,cc,ce,db,ff,01,33,31,24,ff
[$RootKey$\Themes\{de3dbbcd-f642-433c-8353-8f1df4370aba}\TreeView]
"Data"=hex:38,00,00,00,0b,00,00,00,01,00,00,00,8e,f0,ec,92,13,8b,f4,4c,99,e9,ae,26,92,38,21,85,01,00,00,00,0a,00,00,00,42,61,63,6b,67,72,6f,75,6e,64,01,f5,f5,f5,ff,01,1e,1e,1e,ff