Freigeben über


Bildbibliotheks-Viewer

Das Visual Studio Image Library Viewer-Tool kann Bildmanifeste laden und durchsuchen, sodass der Benutzer sie auf die gleiche Weise wie Visual Studio bearbeiten kann. Der Benutzer kann Hintergrund, Größen, DPI, hohen Kontrast und andere Einstellungen ändern. Das Tool zeigt außerdem Ladeinformationen für jedes Bildmanifest an und zeigt Quellinformationen für jedes Bild im Bildmanifest an. Dieses Tool ist nützlich für:

  1. Fehlerdiagnose

  2. Sicherstellen, dass Attribute in benutzerdefinierten Bildmanifesten ordnungsgemäß festgelegt werden

  3. Suchen nach Bildern im Visual Studio-Bildkatalog, sodass eine Visual Studio-Erweiterung Bilder verwenden kann, die dem Stil von Visual Studio entsprechen

Image Library Viewer Hero

Bildmoniker

Ein Bildmoniker (oder moniker für kurze Zeit) ist ein GUID:ID-Paar, das ein Bildobjekt oder eine Bildlistenressource in der Bildbibliothek eindeutig identifiziert.

Bildmanifestdateien

Bildmanifestdateien (IMAGEMANIFEST)-Dateien sind XML-Dateien, die einen Satz von Bildressourcen, die Moniker definieren, die diese Ressourcen darstellen, und das reale Bild oder bilder, die die einzelnen Objekte darstellen. Bildmanifeste können eigenständige Bilder oder Bildlisten für legacy-UI-Unterstützung definieren. Darüber hinaus gibt es Attribute, die entweder für das Objekt oder für die einzelnen Bilder hinter den einzelnen Objekten festgelegt werden können, um zu ändern, wann und wie diese Ressourcen angezeigt werden.

Bildmanifestschema

Ein vollständiges Bildmanifest sieht wie folgt aus:

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

Symbols

Als Lesbarkeits- und Standard schutzhilfe kann das Bildmanifest Symbole für Attributwerte verwenden. Symbole werden wie folgt definiert:

<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" />
</Symbols>
Unterelement Definition
Importieren Importiert die Symbole der angegebenen Manifestdatei für die Verwendung im aktuellen Manifest.
GUID Das Symbol stellt eine GUID dar und muss mit der GUID-Formatierung übereinstimmen.
ID Das Symbol stellt eine ID dar und muss eine nicht-negative ganze Zahl sein.
String Das Symbol stellt einen beliebigen Zeichenfolgenwert dar.

Bei Symbolen wird die Groß-/Kleinschreibung beachtet und mithilfe der Syntax $(symbol-name) verwiesen:

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

Einige Symbole sind für alle Manifeste vordefinierte. Diese können im URI-Attribut des <Source> - oder <Import-Elements> verwendet werden, um auf Pfade auf dem lokalen Computer zu verweisen.

Symbol Beschreibung
CommonProgramFiles Der Wert der Umgebungsvariable %CommonProgramFiles%
LocalAppData Der Wert der Umgebungsvariable %LocalAppData%
ManifestFolder Der Ordner mit der Manifestdatei
Mydocuments Der vollständige Pfad des Ordners "Meine Dokumente" des aktuellen Benutzers
ProgramFiles Der Wert der Umgebungsvariable %ProgramFiles%
System Der Ordner "Windows\System32"
WinDir Der Wert der Umgebungsvariable %WinDir%

Image

Das <Image-Element> definiert ein Bild, auf das von einem Moniker verwiesen werden kann. Die GUID und DIE ID bilden zusammen den Bildmoniker. Der Moniker für das Bild muss in der gesamten Bildbibliothek eindeutig sein. Wenn mehr als ein Bild einen bestimmten Moniker aufweist, ist das erste, das beim Erstellen der Bibliothek aufgetreten ist, das beibehalten wird.

Sie muss mindestens eine Quelle enthalten. Obwohl größenneutrale Quellen die besten Ergebnisse für eine breite Palette von Größen liefern, sind sie nicht erforderlich. Wenn der Dienst nach einem Bild einer Größe gefragt wird, das <nicht im Image-Element> definiert ist und keine größenneutrale Quelle vorhanden ist, wählt der Dienst die beste größenspezifische Quelle aus und skaliert es auf die angeforderte Größe.

<Image Guid="guid" ID="int" AllowColorInversion="true/false">
      <Source ... />
      <!-- optional additional Source elements -->
</Image>
Attribut Definition
GUID [Erforderlich] Der GUID-Teil des Bildmonikers
ID [Erforderlich] Der ID-Teil des Bildmonikers
AllowColorInversion [Optional; Standard true] Gibt an, ob das Bild seine Farben programmgesteuert invertiert haben kann, wenn es auf einem dunklen Hintergrund verwendet wird.

Quelle

Das <Source-Element definiert eine einzelne Bildquellressource> (XAML und PNG).

<Source Uri="uri" Background="background">
      <!-- optional NativeResource element -->
 </Source>
Attribut Definition
URI [Erforderlich] Ein URI, der definiert, wo das Bild geladen werden kann. Folgende Werte sind möglich:

- Ein Pack-URI mit der application:/// Autorität

- Ein absoluter Komponentenressourcenverweis

– Ein Pfad zu einer Datei, die eine systemeigene Ressource enthält
Hintergrund [Optional] Gibt an, welche Art von Hintergrund die Quelle verwenden soll.

Folgende Werte sind möglich:

- Licht: Die Quelle kann auf einem hellen Hintergrund verwendet werden.

- Dunkel: Die Quelle kann auf einem dunklen Hintergrund verwendet werden.

- HighContrast: Die Quelle kann auf jedem Hintergrund im Modus "Hoher Kontrast" verwendet werden.

- HighContrastLight: Die Quelle kann auf einem hellen Hintergrund im Modus "Hoher Kontrast" verwendet werden.

-HighContrastDark: Die Quelle kann im Modus "Hoher Kontrast" auf einem dunklen Hintergrund verwendet werden.

Wenn das Background-Attribut nicht angegeben wird, kann die Quelle auf einem beliebigen Hintergrund verwendet werden.

Wenn Der Hintergrund hell, dunkel, HighContrastLight oder HighContrastDark ist, werden die Farben der Quelle nie umgekehrt. Wenn "Background" nicht angegeben oder auf "HighContrast" festgelegt ist, wird die Inversion der Farben der Quelle durch das AllowColorInversion-Attribut des Bilds gesteuert.

Ein <Source-Element> kann genau eines der folgenden optionalen Unterelemente aufweisen:

Element Attribute (alle erforderlich) Definition
<Größe> Wert Die Quelle wird für Bilder der angegebenen Größe (in Geräteeinheiten) verwendet. Das Bild ist quadratisch.
<SizeRange> MinSize, MaxSize Die Quelle wird für Bilder von MinSize in MaxSize (in Geräteeinheiten) einschließlich verwendet. Das Bild ist quadratisch.
<Dimensionen> Width, Height Die Quelle wird für Bilder der angegebenen Breite und Höhe (in Geräteeinheiten) verwendet.
<DimensionRange> MinWidth, MinHeight,

MaxWidth, MaxHeight
Die Quelle wird für Bilder von der Mindestbreite/Höhe bis zur maximalen Breite/Höhe (in Geräteeinheiten) einschließlich verwendet.

Ein <Source-Element> kann auch über ein optionales <NativeResource-Unterelement> verfügen, das eine <Quelle> definiert, die aus einer systemeigenen Assembly und nicht aus einer verwalteten Assembly geladen wird.

<NativeResource Type="type" ID="int" />
Attribut Definition
Typ [Erforderlich] Der Typ der nativen Ressource, entweder XAML oder PNG
ID [Erforderlich] Der ganzzahlige ID-Teil der nativen Ressource

ImageList

Das <ImageList-Element> definiert eine Auflistung von Bildern, die in einem einzelnen Streifen zurückgegeben werden können. Der Streifen ist nach Bedarf aufgebaut.

<ImageList>
      <ContainedImage Guid="guid" ID="int" External="true/false" />
      <!-- optional additional ContainedImage elements -->
 </ImageList>
Attribut Definition
GUID [Erforderlich] Der GUID-Teil des Bildmonikers
ID [Erforderlich] Der ID-Teil des Bildmonikers
Extern [Optional, Standard false] Gibt an, ob der Bildmoniker auf ein Bild im aktuellen Manifest verweist.

Der Moniker für das enthaltene Bild muss nicht auf ein im aktuellen Manifest definiertes Bild verweisen. Wenn das enthaltene Bild in der Bildbibliothek nicht gefunden werden kann, wird ein leeres Platzhalterbild an seiner Stelle verwendet.

So verwenden Sie das Tool

Überprüfen eines benutzerdefinierten Bildmanifests

Zum Erstellen eines benutzerdefinierten Manifests wird empfohlen, das ManifestFromResources-Tool zum automatischen Generieren des Manifests zu verwenden. Um das benutzerdefinierte Manifest zu überprüfen, starten Sie den Bildbibliotheks-Viewer, und wählen Sie "Dateisatzpfade > " aus... um das Dialogfeld "Verzeichnisse durchsuchen" zu öffnen. Das Tool verwendet die Suchverzeichnisse, um Bildmanifeste zu laden, aber es verwendet es auch, um die DLL-Dateien zu finden, die die Bilder in einem Manifest enthalten. Stellen Sie daher sicher, dass sowohl die Manifest- als auch dll-Verzeichnisse in dieses Dialogfeld einbezogen werden.

Image Library Viewer Search

Klicken Sie auf "Hinzufügen..." , um neue Suchverzeichnisse auszuwählen, um nach Manifesten und den entsprechenden DLLs zu suchen. Das Tool merkt sich diese Suchverzeichnisse, und sie können durch Aktivieren oder Deaktivieren eines Verzeichnisses aktiviert oder deaktiviert werden.

Standardmäßig versucht das Tool, das Visual Studio-Installationsverzeichnis zu finden und diese Verzeichnisse zur Liste der Suchverzeichnisse hinzuzufügen. Sie können Verzeichnisse, die das Tool nicht findet, manuell hinzufügen.

Nachdem alle Manifeste geladen wurden, kann das Tool zum Umschalten von Hintergrundfarben , DPI, hohem Kontrast oder Graustufen für die Bilder verwendet werden, damit ein Benutzer Bildressourcen visuell überprüfen kann, um zu überprüfen, ob sie für verschiedene Einstellungen korrekt gerendert werden.

Image Library Viewer Background

Die Hintergrundfarbe kann auf Hell, Dunkel oder einen benutzerdefinierten Wert festgelegt werden. Wenn Sie "Benutzerdefinierte Farbe" auswählen, wird ein Dialogfeld für die Farbauswahl geöffnet und diese benutzerdefinierte Farbe am unteren Rand des Hintergrund-Kombinationsfelds hinzugefügt, um später einfach zurückzurufen.

Image Library Viewer Custom Color

Wenn Sie einen Bildmoniker auswählen, werden die Informationen für jedes reale Bild hinter diesem Moniker im Bereich "Bilddetails" auf der rechten Seite angezeigt. Im Bereich können Benutzer auch einen Moniker nach Name oder nach unformatiertem GUID:ID-Wert kopieren.

Image Library Viewer Image Details

Die informationen, die für jede Bildquelle angezeigt werden, umfassen, welche Art von Hintergrund sie anzeigt, ob sie designiert oder unterstützt werden kann, welche Größen es gültig ist oder ob es größenneutral ist und ob das Bild aus einer systemeigenen Assembly stammt.

Image Library Viewer Can Theme

Beim Überprüfen eines Bildmanifests wird empfohlen, dass Sie die Manifest- und Image-DLL an ihren realen Speicherorten bereitstellen. Dadurch wird sichergestellt, dass alle relativen Pfade ordnungsgemäß funktionieren und dass die Bildbibliothek die Manifest- und Bild-DLL finden und laden kann.

Suchen nach Bildkatalog KnownMonikers

Um die Formatierung von Visual Studio besser abzugleichen, kann eine Visual Studio-Erweiterung Bilder im Visual Studio-Bildkatalog verwenden, anstatt eigene Bilder zu erstellen und zu verwenden. Dies hat den Vorteil, dass diese Bilder nicht Standard beibehalten werden müssen, und garantiert, dass das Bild über ein Hintergrundbild mit hohem DPI-Wert verfügt, damit es in allen von Visual Studio unterstützten DPI-Einstellungen korrekt aussehen sollte.

Der Bildbibliotheks-Viewer ermöglicht es, ein Manifest zu durchsuchen, sodass ein Benutzer den Moniker finden kann, der eine Bildressource darstellt und diesen Moniker im Code verwendet. Um nach Bildern zu suchen, geben Sie den gewünschten Suchbegriff in das Suchfeld ein, und drücken Sie die EINGABETASTE. In der Statusleiste unten wird angezeigt, wie viele Übereinstimmungen aus den Gesamtbildern in allen Manifesten gefunden wurden.

Image Library Viewer Filter

Bei der Suche nach Bildmonikern in vorhandenen Manifesten wird empfohlen, nur nach den Monikern des Visual Studio-Bildkatalogs, anderen absichtlich öffentlich zugänglichen Monikern oder ihren eigenen benutzerdefinierten Monikern zu suchen und zu verwenden. Wenn Sie nicht öffentliche Moniker verwenden, wird die benutzerdefinierte Benutzeroberfläche möglicherweise beschädigt oder ihre Bilder auf unerwartete Weise geändert, wenn oder wenn diese nichtublicen Moniker und Bilder geändert oder aktualisiert werden.

Darüber hinaus ist die Suche nach GUID möglich. Dieser Suchtyp ist nützlich, um die Liste in ein einzelnes Manifest oder einen einzelnen Unterabschnitt eines Manifests zu filtern, wenn dieses Manifest mehrere GUIDs enthält.

Image Library Viewer Filter GUID

Schließlich ist auch die Suche nach ID möglich.

Image Library Viewer Filter ID

Hinweise

  • Standardmäßig ruft das Tool mehrere Bildmanifeste ab, die im Visual Studio-Installationsverzeichnis vorhanden sind. Die einzige, die öffentlich konsumierbare Moniker enthält, ist das Manifest "Microsoft.VisualStudio.ImageCatalog ". GUID: ae27a6b0-e345-4288-96df-5eaf394ee369 ( diese GUID in einem benutzerdefinierten Manifest nicht außer Kraft setzen) Typ: KnownMonikers

  • Das Tool versucht beim Start, alle gefundenen Bildmanifeste zu laden, sodass es mehrere Sekunden dauern kann, bis die Anwendung tatsächlich angezeigt wird. Es kann auch langsam oder nicht reagieren, während die Manifeste geladen werden.

Beispielausgabe

Dieses Tool generiert keine Ausgabe.