共用方式為


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