Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Narzędzie kompilatora kolorów rozszerzenia programu Visual Studio to aplikacja konsolowa, która pobiera plik .xml reprezentujący kolory istniejących motywów programu Visual Studio i zakrywa go do pliku pkgdef, aby można było używać tych kolorów w programie Visual Studio. Ponieważ łatwo jest porównać różnice między plikami .xml, to narzędzie jest przydatne do zarządzania kolorami niestandardowymi w kontroli źródła. Można go również podłączyć do środowisk kompilacji, aby dane wyjściowe kompilacji był prawidłowym plikiem pkgdef.
Schemat XML motywu
Pełny plik .xml motywu wygląda następująco:
<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>
Motyw
Element <Motyw> definiuje cały motyw. Motyw musi zawierać co najmniej jeden <element Kategoria> . Elementy motywu są zdefiniowane w następujący sposób:
<Theme Name="name" GUID="guid">
<!-- one or more Category elements -->
</Theme>
| Atrybut | Definicja |
|---|---|
| Name | [Wymagane] Nazwa motywu |
| GUID | [Wymagane] Identyfikator GUID motywu (musi być zgodny z formatowaniem GUID) |
Podczas tworzenia kolorów niestandardowych dla programu Visual Studio te kolory należy zdefiniować dla następujących motywów. Jeśli nie ma kolorów dla określonego motywu, program Visual Studio próbuje załadować brakujące kolory z motywu Light.
| Nazwa motywu | Identyfikator GUID motywu |
|---|---|
| Light | {de3dbbcd-f642-433c-8353-8f1df4370aba} |
| Ciemny | {1ded0138-47ce-435e-84ef-9ec1f439b749} |
| Blue | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
| duży kontrast | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
| Nazwa motywu | Identyfikator GUID motywu |
|---|---|
| Light | {de3dbbcd-f642-433c-8353-8f1df4370aba} |
| Ciemny | {1ded0138-47ce-435e-84ef-9ec1f439b749} |
| duży kontrast | {a4d6a176-b948-4b29-8c66-53c97a1ed7d0} |
Kategoria
Element <Category> definiuje kolekcję kolorów w motywie. Kategoria musi zawierać co najmniej jeden <element Color> . Elementy kategorii są zdefiniowane w następujący sposób:
<Category Name="name" GUID="guid">
<!-- one or more Color elements -->
</Category>
| Atrybut | Definicja |
|---|---|
| Name | [Wymagane] Nazwa kategorii |
| GUID | [Wymagane] Identyfikator GUID kategorii (musi być zgodny z formatowaniem identyfikatora GUID) |
Nazwy kategorii zapewniają grupowania logiczne i powinny być zdefiniowane tak wąsko, jak to możliwe.
:::moniker range>="vs-2026" Nazwy kategorii zapewniają logiczne grupowania kolorów, które mogą być używane dla podobnego zakresu na wysokim poziomie. W programie Visual Studio 2026 system projektowy, w tym kategoryzacja kolorów, został uproszczony w celu ułatwienia spójnej aplikacji i scentralizowanych aktualizacji. Na przykład motyw programu Visual Studio 2026 ma następujące kategorie: — Decorative kolory mogą służyć do rozróżniania obiektów, takich jak wykresy i kolorowe karty.
-
Shell kolory są używane do typowych kontrolek i powierzchni podobnych do windows :::moniker-end
color
Element <Color> definiuje kolor składnika lub stanu interfejsu użytkownika. Preferowany schemat nazewnictwa dla koloru to [typ interfejsu użytkownika][State]. Nie używaj słowa "kolor", ponieważ jest on nadmiarowy. Kolor powinien wyraźnie wskazywać typ elementu i sytuacje lub "stan", dla którego zostanie zastosowany kolor. Kolor nie może być pusty i musi zawierać jeden lub oba <elementy Tło> i <Pierwszy plan> . Elementy kolorów są zdefiniowane w następujący sposób:
Element <Color> definiuje kolor dla typu elementu interfejsu użytkownika. Preferowany schemat nazewnictwa koloru to [Type][Part][Level]: — Type jest rolą najwyższego poziomu, jaką kolor odgrywa w interfejsie użytkownika, takim jak , Accent, Background, Controlitp. — Text jest bardziej szczegółową aplikacją, taką jak PartFill, Stroke.
-
Level opisuje stan lub krok koloru na rampie, na przykład Default, Disabled, Primary, Secondaryitp. Nie używaj słowa "kolor", ponieważ jest on nadmiarowy. Skoncentruj się na wysokim poziomie zamierzonego użycia zamiast określonej funkcji, aby token koloru mógł być wielokrotnego użytku dla podobnych kontrolek i stanów w celu uzyskania lepszej spójności. Kolor powinien wyraźnie wskazywać typ elementu i sytuacje, dla których zostanie zastosowany kolor. Kolor nie może być pusty i musi zawierać jeden lub oba <elementy Tło> i <Pierwszy plan> . Elementy kolorów są zdefiniowane w następujący sposób:
<Color Name="name">
<Background /> <!-- zero or one Background element -->
<Foreground /> <!-- zero or one Foreground element -->
</Color>
| Atrybut | Definicja |
|---|---|
| Name | [Wymagane] Nazwa koloru |
Tło i/lub Pierwszy plan
Elementy <Tło i >Pierwszy< plan> definiują wartość i typ koloru dla tła lub pierwszego planu elementu interfejsu użytkownika. Te elementy nie mają elementów podrzędnych.
<Background Type="type" Source="int" />
<Foreground Type="type" Source="int" />
| Atrybut | Definicja |
|---|---|
| Typ | [Wymagane] Typ koloru. Może to być jeden z następujących elementów: CT_INVALID: Kolor jest nieprawidłowy lub nie jest ustawiony. CT_RAW: Nieprzetworzona wartość ARGB. CT_COLORINDEX: NIE UŻYWAJ. CT_SYSCOLOR: Kolor systemu Windows z SysColor. CT_VSCOLOR: Kolor programu Visual Studio z __VSSYSCOLOREX. CT_AUTOMATIC: Kolor automatyczny. CT_TRACK_FOREGROUND: NIE UŻYWAJ. CT_TRACK_BACKGROUND: NIE UŻYWAJ. |
| Źródło | [Wymagane] Wartość koloru reprezentowanego w szesnastkowym |
Wszystkie wartości obsługiwane przez wyliczenie __VSCOLORTYPE są obsługiwane przez schemat w atrybucie Type. Zalecamy jednak używanie tylko CT_RAW i CT_SYSCOLOR.
Wszystkie razem
Jest to prosty przykład prawidłowego pliku .xml motywu:
<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>
Jak używać narzędzia
Syntax
VsixColorCompiler <plik><><XML PkgDef opcjonalny Args>
Arguments
| Nazwa przełącznika | Notatki | Wymagane lub opcjonalne |
|---|---|---|
| Bez nazwy (plik.xml) | Jest to pierwszy parametr bez nazwy i jest ścieżką do pliku XML do konwersji. | Required |
| Bez nazwy (plik pkgdef) | Jest to drugi nienazwany parametr i jest ścieżką wyjściową wygenerowanego pliku pkgdef. Ustawienie domyślne: <Nazwa pliku> XML.pkgdef |
Opcjonalnie |
| /noLogo | Ustawienie tej flagi uniemożliwia drukowanie informacji o produktach i prawach autorskich. | Opcjonalnie |
| /? | Wyświetl informacje pomocy. | Opcjonalnie |
| /help | Wyświetl informacje pomocy. | Opcjonalnie |
Examples
VsixColorCompiler D:\xml\colors.xml D:\pkgdef\colors.pkgdef
VsixColorCompiler D:\xml\colors.xml /noLogo
Notatki
To narzędzie wymaga zainstalowania najnowszej wersji środowiska uruchomieniowego Microsoft Visual C++.
Obsługiwane są tylko pojedyncze pliki. Konwersja zbiorcza za pośrednictwem ścieżek folderów nie jest obsługiwana.
Narzędzie można znaleźć w witrynie
<VS Install Path>\VSSDK\VisualStudioIntegration\Tools\Bin\
Przykładowe dane wyjściowe
Plik pkgdef wygenerowany przez narzędzie będzie podobny do poniższych kluczy:
[$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
Aktualizowanie motywów do pracy z programem Visual Studio 2026
Możesz zaktualizować istniejące motywy współpracujące z programem Visual Studio 2022 lub starszym, aby pracować z programem Visual Studio 2026. Zobacz Migrowanie motywów do programu Visual Studio 2026.