Compilateur de couleurs VSIX

L’outil Compilateur de couleurs d’extension Visual Studio est une application console qui prend un fichier .xml représentant des couleurs pour les thèmes Visual Studio existants et les couvre dans un fichier .pkgdef afin que ces couleurs puissent être utilisées dans Visual Studio. Étant donné qu’il est facile de comparer les différences entre les fichiers .xml, cet outil est utile pour gérer les couleurs personnalisées dans le contrôle de code source. Il peut également être connecté à des environnements de build afin que la sortie de la build soit un fichier .pkgdef valide.

Schéma XML de thème

Un thème complet .xml fichier ressemble à ceci :

<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>

Thème

L’élément <Theme> définit un thème entier. Un thème doit contenir au moins un <élément Category> . Les éléments de thème sont définis comme suit :

<Theme Name="name" GUID="guid">
      <!-- one or more Category elements -->
</Theme>
Attribut Définition
Nom [Obligatoire] Nom du thème
Identifiant Unique Global (GUID) [Obligatoire] GUID du thème (doit correspondre à la mise en forme guid)

Lors de la création de couleurs personnalisées pour Visual Studio, ces couleurs doivent être définies pour les thèmes suivants. Si aucune couleur n’existe pour un thème particulier, Visual Studio tente de charger les couleurs manquantes du thème Clair.

Nom du thème GUID de thème
Light {de3dbbcd-f642-433c-8353-8f1df4370aba}
Sombre {1ded0138-47ce-435e-84ef-9ec1f439b749}
Blue {a4d6a176-b948-4b29-8c66-53c97a1ed7d0}
Contraste élevé {a4d6a176-b948-4b29-8c66-53c97a1ed7d0}
Nom du thème GUID de thème
Light {de3dbbcd-f642-433c-8353-8f1df4370aba}
Sombre {1ded0138-47ce-435e-84ef-9ec1f439b749}
Contraste élevé {a4d6a176-b948-4b29-8c66-53c97a1ed7d0}

Catégorie

L’élément <Category> définit une collection de couleurs dans un thème. Une catégorie doit contenir au moins un <élément Color> . Les éléments de catégorie sont définis comme suit :

<Category Name="name" GUID="guid">
  <!-- one or more Color elements -->
</Category>
Attribut Définition
Nom [Obligatoire] Nom de la catégorie
Identifiant Unique Global (GUID) [Obligatoire] GUID de la catégorie (doit correspondre à la mise en forme du GUID)

Les noms de catégorie fournissent des regroupements logiques et doivent être définis aussi étroitement que possible.

:::moniker range>="vs-2026 » Les noms de catégorie fournissent des regroupements logiques pour les couleurs qui peuvent être utilisées pour une étendue similaire à un niveau élevé. Dans Visual Studio 2026, le système de conception, y compris la catégorisation des couleurs, a été simplifié pour faciliter les mises à jour cohérentes des applications et des mises à jour centralisées. Par exemple, un thème Visual Studio 2026 a ces catégories : - Decorative les couleurs peuvent être utilisées pour différencier des objets tels que des graphiques et des onglets colorisés. - Shell Les couleurs sont utilisées pour les contrôles et surfaces courants similaires à Windows :::moniker-end

Couleur

L’élément <Color> définit une couleur pour un composant ou un état de l’interface utilisateur. Le schéma d’affectation de noms préféré pour une couleur est [type d’interface utilisateur][État]. N’utilisez pas le mot « couleur », car il est redondant. Une couleur doit indiquer clairement le type d’élément et les situations, ou « state », pour lesquelles la couleur sera appliquée. Une couleur ne doit pas être vide et doit contenir un <ou les deux éléments Background> et <Foreground> . Les éléments de couleur sont définis comme suit :

L’élément <Color> définit une couleur pour un type d’élément d’interface utilisateur. Le jeu d’affectation de noms préféré pour une couleur est [Type][Part][Level] : Type est le rôle de niveau supérieur que joue la couleur dans l’interface utilisateur, par exemple un Accent, , BackgroundControl, Text, etc. - Part est une application plus granulaire, telle que Fill, Stroke. - Leveldécrit l’état ou l’étape de la couleur dans une rampe, par Defaultexemple , , DisabledPrimary, Secondary, , etc. N’utilisez pas le mot « couleur », car il est redondant. Concentrez-vous sur l’utilisation prévue de haut niveau au lieu d’une fonctionnalité spécifique, afin que le jeton de couleur puisse être réutilisable pour des contrôles et des états similaires pour une meilleure cohérence. Une couleur doit indiquer clairement le type d’élément et les situations pour lesquelles la couleur sera appliquée. Une couleur ne doit pas être vide et doit contenir un <ou les deux éléments Background> et <Foreground> . Les éléments de couleur sont définis comme suit :

<Color Name="name">
  <Background /> <!-- zero or one Background element -->
  <Foreground /> <!-- zero or one Foreground element -->
</Color>
Attribut Définition
Nom [Obligatoire] Nom de la couleur

Arrière-plan et/ou premier plan

Les <éléments Background> et <Foreground> définissent la valeur et le type d’une couleur pour l’arrière-plan ou le premier plan d’un élément d’interface utilisateur. Ces éléments n’ont pas d’enfants.

<Background Type="type" Source="int" />
<Foreground Type="type" Source="int" />
Attribut Définition
Type [Obligatoire] Type de la couleur. Il peut s’agir de l’un des éléments suivants :

CT_INVALID : La couleur n’est pas valide ou n’est pas définie.

CT_RAW : Valeur ARVB brute.

CT_COLORINDEX : N’UTILISEZ PAS.

CT_SYSCOLOR : Couleur système Windows de SysColor.

CT_VSCOLOR : Couleur Visual Studio de __VSSYSCOLOREX.

CT_AUTOMATIC : Couleur automatique.

CT_TRACK_FOREGROUND : N’UTILISEZ PAS.

CT_TRACK_BACKGROUND : N’UTILISEZ PAS.
Origine [Obligatoire] Valeur de la couleur représentée en hexadécimal

Toutes les valeurs prises en charge par l’énumération __VSCOLORTYPE sont prises en charge par le schéma dans l’attribut Type. Toutefois, nous vous recommandons d’utiliser uniquement CT_RAW et CT_SYSCOLOR.

Tous ensemble

Il s’agit d’un exemple simple d’un fichier de thème valide .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>

Comment utiliser l’outil

Syntaxe

Fichier XML<>VsixColorCompiler <PkgDef file><Optional Args>

Arguments

Nom du commutateur Remarques Obligatoire ou facultatif
Sans nom ( fichier.xml) Il s’agit du premier paramètre sans nom et est le chemin d’accès au fichier XML à convertir. Obligatoire
Unnamed (fichier.pkgdef) Il s’agit du deuxième paramètre sans nom et est le chemin de sortie du fichier .pkgdef généré.

Valeur par défaut : <XML Filename.pkgdef>
Optional
/noLogo La définition de cet indicateur empêche l’impression des informations sur le produit et les droits d’auteur. Optional
/? Imprimez les informations d’aide. Optional
/help Imprimez les informations d’aide. Optional

Examples

  • VsixColorCompiler D:\xml\colors.xml D :\pkgdef\colors.pkgdef

  • VsixColorCompiler D:\xml\colors.xml /noLogo

Remarques

  • Cet outil nécessite que la dernière version du runtime Microsoft Visual C++ soit installée.

  • Seuls les fichiers uniques sont pris en charge. La conversion en bloc via les chemins d’accès aux dossiers n’est pas prise en charge.

  • L’outil se trouve dans <VS Install Path>\VSSDK\VisualStudioIntegration\Tools\Bin\

Exemple de sortie

Le fichier .pkgdef généré par l’outil est similaire aux clés ci-dessous :

[$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

Mettre à jour des thèmes pour travailler avec Visual Studio 2026

Vous pouvez mettre à jour des thèmes existants qui fonctionnent avec Visual Studio 2022 ou une version antérieure pour utiliser Visual Studio 2026. Voir Migrer des thèmes vers Visual Studio 2026.