Udostępnij za pośrednictwem


Przeglądarka biblioteki obrazów

Narzędzie Podgląd biblioteki obrazów programu Visual Studio może ładować i wyszukiwać manifesty obrazów, umożliwiając użytkownikowi manipulowanie nimi w taki sam sposób, jak w programie Visual Studio. Użytkownik może zmienić tło, rozmiary, dpi, duży kontrast i inne ustawienia. Narzędzie wyświetla również informacje o ładowaniu dla każdego manifestu obrazu i wyświetla informacje o źródle dla każdego obrazu w manifeście obrazu. To narzędzie jest przydatne w następujących celach:

  1. Diagnozowanie błędów

  2. Upewnienie się, że atrybuty są poprawnie ustawiane w manifestach obrazu niestandardowego

  3. Wyszukiwanie obrazów w katalogu obrazów programu Visual Studio w taki sposób, aby rozszerzenie programu Visual Studio może używać obrazów pasujących do stylu programu Visual Studio

Image Library Viewer Hero

Moniker obrazu

Moniker obrazu (lub moniker for short) to para GUID:ID, która jednoznacznie identyfikuje zasób obrazu lub zasób listy obrazów w bibliotece obrazów.

Pliki manifestu obrazu

Pliki manifestu obrazu (imagemanifest) to pliki XML, które definiują zestaw zasobów obrazów, elementy monikers reprezentujące te zasoby oraz rzeczywisty obraz lub obrazy reprezentujące każdy zasób. Manifesty obrazów mogą definiować autonomiczne obrazy lub listy obrazów dla starszej obsługi interfejsu użytkownika. Ponadto istnieją atrybuty, które można ustawić na zasobie lub na poszczególnych obrazach za każdym zasobem, aby zmienić czas i sposób wyświetlania tych zasobów.

Schemat manifestu obrazu

Pełny manifest obrazu wygląda następująco:

<ImageManifest>
      <!-- zero or one Symbols elements -->
      <Symbols>
        <!-- zero or more Guid, ID, or String elements -->
      </Symbols>
      <!-- zero or one Images elements -->
      <Images>
        <!-- zero or more Image elements -->
      </Images>
      <!-- zero or one ImageLists elements -->
      <ImageLists>
        <!-- zero or more ImageList elements -->
      </ImageLists>
</ImageManifest>

Symbole

Jako pomoc w czytelności i konserwacji manifest obrazu może używać symboli dla wartości atrybutów. Symbole są zdefiniowane w następujący sposób:

<Symbols>
      <Import Manifest="manifest" />
      <Guid Name="ShellCommandGuid" Value="8ee4f65d-bab4-4cde-b8e7-ac412abbda8a" />
      <ID Name="cmdidSaveAll" Value="1000" />
      <String Name="AssemblyName" Value="Microsoft.VisualStudio.Shell.UI.Internal" />
      <!-- If your assembly is strongly named, you'll need the version and public key token as well -->
      <!-- <String Name="AssemblyName" Value="Microsoft.VisualStudio.Shell.UI.Internal;v17.0.0.0;b03f5f7f11d50a3a" /> -->
</Symbols>
Podelement Definicja
Import Importuje symbole danego pliku manifestu do użycia w bieżącym manifeście.
Identyfikator GUID Symbol reprezentuje identyfikator GUID i musi być zgodny z formatowaniem identyfikatora GUID.
ID Symbol reprezentuje identyfikator i musi być nienegacyjną liczbą całkowitą.
String Symbol reprezentuje dowolną wartość ciągu.

Symbole są uwzględniane w wielkości liter i odwołują się do składni $(nazwa-symbolu):

<Image Guid="$(ShellCommandGuid)" ID="$(cmdidSaveAll)" >
      <Source Uri="/$(AssemblyName);Component/Resources/image.xaml" />
</Image>

Niektóre symbole są wstępnie zdefiniowane dla wszystkich manifestów. Można ich użyć w atrybucie <Uri elementu Source> lub <Import> do ścieżek odwołań na komputerze lokalnym.

Symbol Opis
CommonProgramFiles Wartość zmiennej środowiskowej %CommonProgramFiles%
Localappdata Wartość zmiennej środowiskowej %LocalAppData%
ManifestFolder Folder zawierający plik manifestu
Mydocuments Pełna ścieżka folderu Moje dokumenty bieżącego użytkownika
Programfiles Wartość zmiennej środowiskowej %ProgramFiles%
Zadania systemowe Folder Windows\System32
Windir Wartość zmiennej środowiskowej %WinDir%

Obraz

Element <Image> definiuje obraz, do którego można odwoływać się pod pseudonimem. Identyfikator GUID i identyfikator wzięty razem tworzą pseudonim obrazu. Pseudonim obrazu musi być unikatowy w całej bibliotece obrazów. Jeśli dany pseudonim zawiera więcej niż jeden obraz, pierwszy napotkany podczas kompilowania biblioteki jest tym, który jest zachowywany.

Musi zawierać co najmniej jedno źródło. Chociaż źródła neutralne od rozmiaru dają najlepsze wyniki w szerokim zakresie rozmiarów, nie są one wymagane. Jeśli usługa zostanie poproszona o obraz o rozmiar niezdefiniowany w <elemecie Obraz> i nie ma źródła neutralnego rozmiaru, usługa wybierze najlepsze źródło specyficzne dla rozmiaru i przeskaluje je do żądanego rozmiaru.

<Image Guid="guid" ID="int" AllowColorInversion="true/false">
      <Source ... />
      <!-- optional additional Source elements -->
</Image>
Atrybut Definicja
Identyfikator GUID [Wymagane] Część identyfikatora GUID moniker obrazu
ID [Wymagane] Część identyfikatora moniker obrazu
AllowColorInversion [Opcjonalnie, wartość domyślna true] Wskazuje, czy obraz może mieć swoje kolory programowo odwrócone w przypadku użycia na ciemnym tle.

Source

Element <Źródłowy> definiuje pojedynczy zasób źródłowy obrazu (XAML i PNG).

<Source Uri="uri" Background="background">
      <!-- optional NativeResource element -->
 </Source>
Atrybut Definicja
Identyfikator URI [Wymagane] Identyfikator URI definiujący, skąd można załadować obraz. Może to być jedna z następujących opcji:

— Identyfikator URI pakietu przy użyciu urzędu application:///

— Odwołanie do zasobów składnika bezwzględnego

- Ścieżka do pliku zawierającego zasób natywny
Tło [Opcjonalnie] Wskazuje, jakiego rodzaju tło ma być używane źródło.

Może to być jedna z następujących opcji:

- Światło: Źródło może być używane na jasnym tle.

- Ciemny: źródło może być używane na ciemnym tle.

- HighContrast: źródło może być używane w dowolnym tle w trybie dużego kontrastu.

- HighContrastLight: źródło może być używane na jasnym tle w trybie dużego kontrastu.

-HighContrastDark: źródło może być używane na ciemnym tle w trybie dużego kontrastu.

Jeśli atrybut Background zostanie pominięty, źródło może być używane w dowolnym tle.

Jeśli tło jest jasne, ciemne, HighContrastLight lub HighContrastDark, kolory źródła nigdy nie są odwrócone. Jeśli w tle pominięto lub ustawiono wartość HighContrast, inwersja kolorów źródła jest kontrolowana przez atrybut AllowColorInversion obrazu.

Element <źródłowy> może mieć dokładnie jeden z następujących opcjonalnych elementów podrzędnych:

Element Atrybuty (wszystkie wymagane) Definicja
<Rozmiar> Wartość Źródło będzie używane do obrazów danego rozmiaru (w jednostkach urządzeń). Obraz będzie kwadratowy.
<SizeRange> MinSize, MaxSize Źródło będzie używane dla obrazów z minsize do MaxSize (w jednostkach urządzeń) włącznie. Obraz będzie kwadratowy.
<Wymiary> Szerokość, wysokość Źródło będzie używane do obrazów danej szerokości i wysokości (w jednostkach urządzeń).
<WymiarRange> MinWidth, MinHeight,

MaxWidth, MaxHeight
Źródło będzie używane dla obrazów z minimalnej szerokości/wysokości do maksymalnej szerokości/wysokości (w jednostkach urządzeń) włącznie.

Element <źródłowy> może również mieć opcjonalny <podelement NativeResource> , który definiuje <źródło> ładowane z zestawu natywnego, a nie z zarządzanego zestawu.

<NativeResource Type="type" ID="int" />
Atrybut Definicja
Typ [Wymagane] Typ zasobu natywnego, XAML lub PNG
ID [Wymagane] Część identyfikatora całkowitego zasobu natywnego

Imagelist

Element <ImageList> definiuje kolekcję obrazów, które można zwrócić w jednym pasku. Pasek jest zbudowany na żądanie zgodnie z potrzebami.

<ImageList>
      <ContainedImage Guid="guid" ID="int" External="true/false" />
      <!-- optional additional ContainedImage elements -->
 </ImageList>
Atrybut Definicja
Identyfikator GUID [Wymagane] Część identyfikatora GUID moniker obrazu
ID [Wymagane] Część identyfikatora moniker obrazu
Zewnętrzne [Opcjonalne, domyślne fałsz] Wskazuje, czy moniker obrazu odwołuje się do obrazu w bieżącym manifeście.

Pseudonim zawartego obrazu nie musi odwoływać się do obrazu zdefiniowanego w bieżącym manifeście. Jeśli nie można odnaleźć zawartego obrazu w bibliotece obrazów, w jego miejscu zostanie użyty pusty obraz zastępczy.

Jak korzystać z narzędzia

Weryfikowanie niestandardowego manifestu obrazu

Aby utworzyć manifest niestandardowy, zalecamy użycie narzędzia ManifestFromResources do automatycznego generowania manifestu. Aby zweryfikować manifest niestandardowy, uruchom przeglądarkę biblioteki obrazów i wybierz pozycję Ścieżki zestawu plików > ... aby otworzyć okno dialogowe Katalogi wyszukiwania. Narzędzie będzie używać katalogów wyszukiwania do ładowania manifestów obrazów, ale będzie również używać ich do znajdowania plików dll zawierających obrazy w manifeście, dlatego upewnij się, że w tym oknie dialogowym znajdują się zarówno katalogi manifestu, jak i biblioteki DLL.

Image Library Viewer Search

Kliknij przycisk Dodaj..., aby wybrać nowe katalogi wyszukiwania, aby wyszukać manifesty i odpowiadające im biblioteki DLL. Narzędzie zapamięta te katalogi wyszukiwania i można je włączyć lub wyłączyć, zaznaczając lub usuwając zaznaczenie katalogu.

Domyślnie narzędzie podejmie próbę znalezienia katalogu instalacji programu Visual Studio i dodania tych katalogów do listy katalogów wyszukiwania. Możesz ręcznie dodać katalogi, których narzędzie nie znajdzie.

Po załadowaniu wszystkich manifestów narzędzie może służyć do przełączania kolorów tła , DPI, dużego kontrastu lub szarości obrazów, aby użytkownik mógł wizualnie sprawdzić zasoby obrazów , aby sprawdzić, czy są one renderowane poprawnie dla różnych ustawień.

Image Library Viewer Background

Kolor tła można ustawić na jasny, ciemny lub wartość niestandardową. Wybranie opcji "Kolor niestandardowy" spowoduje otwarcie okna dialogowego wyboru kolorów i dodanie tego niestandardowego koloru do dołu pola kombi tła w celu późniejszego łatwego przypomnienia.

Image Library Viewer Custom Color

Wybranie moniker obrazu powoduje wyświetlenie informacji dla każdego rzeczywistego obrazu za tym pseudonimem w okienku Szczegóły obrazu po prawej stronie. Okienko umożliwia również użytkownikom kopiowanie moniker według nazwy lub nieprzetworzonej wartości GUID:ID.

Image Library Viewer Image Details

Informacje wyświetlane dla każdego źródła obrazu zawierają rodzaj tła do wyświetlenia, niezależnie od tego, czy można je wyświetlić, czy też obsługuje duży kontrast, jakie rozmiary są prawidłowe dla lub czy jest neutralny dla rozmiaru i czy obraz pochodzi z zestawu natywnego.

Image Library Viewer Can Theme

Podczas sprawdzania poprawności manifestu obrazu zalecamy wdrożenie biblioteki DLL manifestu i obrazu w ich rzeczywistych lokalizacjach. Spowoduje to sprawdzenie, czy wszystkie ścieżki względne działają poprawnie i czy biblioteka obrazów może znaleźć i załadować bibliotekę DLL manifestu i obrazu.

Wyszukiwanie wykazu obrazów ZnaneMonikers

Aby lepiej dopasować styl programu Visual Studio, rozszerzenie programu Visual Studio może używać obrazów w wykazie obrazów programu Visual Studio, a nie tworzyć i używać własnych. Ma to korzyść, że nie trzeba utrzymywać tych obrazów i gwarantuje, że obraz będzie miał obraz zapasowy o wysokiej rozdzielczości DPI, więc powinien wyglądać poprawnie we wszystkich ustawieniach DPI, które obsługuje program Visual Studio.

Przeglądarka bibliotek obrazów umożliwia przeszukiwanie manifestu, dzięki czemu użytkownik może znaleźć pseudonim reprezentujący zasób obrazu i użyć tego pseudonimu w kodzie. Aby wyszukać obrazy, wprowadź żądany termin wyszukiwania w polu wyszukiwania i naciśnij klawisz Enter. Pasek stanu u dołu wyświetli liczbę dopasowań znalezionych z łącznej liczby obrazów we wszystkich manifestach.

Image Library Viewer Filter

Podczas wyszukiwania elementów monikers obrazów w istniejących manifestach zalecamy wyszukiwanie i używanie tylko monikers wykazu obrazów programu Visual Studio, innych celowo dostępnych publicznie monikers lub własnych niestandardowych monikers. Jeśli używasz niepublicowych monikers, niestandardowy interfejs użytkownika może zostać uszkodzony lub jego obrazy zmieniły się w nieoczekiwany sposób, jeśli lub gdy te niepubliczne moniki i obrazy zostaną zmienione lub zaktualizowane.

Ponadto wyszukiwanie według identyfikatora GUID jest możliwe. Ten typ wyszukiwania jest przydatny do filtrowania listy w dół do pojedynczego manifestu lub pojedynczej podsekcji manifestu, jeśli ten manifest zawiera wiele identyfikatorów GUID.

Image Library Viewer Filter GUID

Na koniec wyszukiwanie według identyfikatora jest możliwe.

Image Library Viewer Filter ID

Uwagi

  • Domyślnie narzędzie ściągnie kilka manifestów obrazów znajdujących się w katalogu instalacyjnym programu Visual Studio. Jedynym, który ma publicznie eksploatacyjne monikers, jest manifest Microsoft.VisualStudio.ImageCatalog . Identyfikator GUID: ae27a6b0-e345-4288-96df-5eaf394ee369 ( nie przesłaniaj tego identyfikatora GUID w manifeście niestandardowym) Typ: KnownMonikers

  • Narzędzie próbuje uruchomić, aby załadować wszystkie znalezione manifesty obrazów, więc wyświetlenie aplikacji może potrwać kilka sekund. Może to być również powolne lub nieodpowiadalne podczas ładowania manifestów.

Przykładowe dane wyjściowe

To narzędzie nie generuje żadnych danych wyjściowych.