Služba a katalog imagí
Tato kuchařka obsahuje pokyny a osvědčené postupy pro přijetí služby Image a katalogu obrázků sady Visual Studio představené v sadě Visual Studio 2015.
Služba image představená v sadě Visual Studio 2015 umožňuje vývojářům získat nejlepší obrázky pro zařízení a zvolený motiv uživatele k zobrazení obrázku, včetně jejich oprav pro kontext, ve kterém se zobrazují. Přijetí služby image pomůže eliminovat hlavní problémy související s údržbou prostředků, HDPI škálování a motivy.
Problémy dnes | Řešení |
---|---|
Prolnutí barev pozadí | Předdefinované alfa prolnutí |
Motivy (některé) obrázky | Metadata motivu |
Režim vysoký kontrast | Alternativní prostředky s vysokým kontrastem |
Potřeba více prostředků pro různé režimy DPI | Výběrové prostředky s náhradními prostředky založenými na vektorech |
Duplicitní obrázky | Jeden identifikátor na koncept obrázku |
Proč přijmout službu image?
Vždy získejte nejnovější obrázek "pixel-perfect" ze sady Visual Studio.
Můžete odesílat a používat vlastní image.
Při přidání nového měřítka DPI ve Windows nemusíte obrázky testovat.
Řešení starých překážek architektury v implementacích
Panel nástrojů prostředí sady Visual Studio před a po použití služby image:
Jak to funguje
Služba image může poskytnout rastrový obrázek vhodný pro jakoukoli podporovanou architekturu uživatelského rozhraní:
WPF: BitmapSource
WinForms: System.Drawing.Bitmap
Win32: HBITMAP
Obrázek diagramu toku služby
Obrázky monikers
Moniker image (nebo moniker for short) je dvojice GUID/ID, která jedinečně identifikuje prostředek image nebo prostředek seznamu obrázků v knihovně obrázků.
Známé monikers
Sada monikerů obrázků obsažených v katalogu imagí sady Visual Studio a veřejně využitelná libovolnou komponentou nebo rozšířením sady Visual Studio.
Soubory manifestu obrázku
Soubory manifestu obrázku (.imagemanifest) jsou soubory XML, které definují sadu prostředků image, monikery, které představují tyto prostředky, a skutečný obrázek nebo obrázky, které představují každý prostředek. Manifesty obrázků můžou definovat samostatné image nebo seznamy obrázků pro podporu starší verze uživatelského rozhraní. Kromě toho existují atributy, které lze nastavit buď u prostředku, nebo na jednotlivých obrázcích za každým assetem, aby se změnilo, kdy a jak se tyto prostředky zobrazují.
Schéma manifestu obrázku
Úplný manifest obrázku vypadá takto:
<ImageManifest>
<!-- zero or one Symbols elements -->
<Symbols>
<!-- zero or more Import, 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>
Symboly
Jako pomůcku pro čitelnost a údržbu může manifest obrázku používat symboly pro hodnoty atributů. Symboly jsou definovány takto:
<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>
Dílčím | Definice |
---|---|
Import | Importuje symboly daného souboru manifestu pro použití v aktuálním manifestu. |
Guid | Symbol představuje identifikátor GUID a musí odpovídat formátování GUID. |
ID | Symbol představuje ID a musí být nenegativní celé číslo. |
String | Symbol představuje libovolnou řetězcovou hodnotu. |
Symboly rozlišují malá a velká písmena a odkazují se na ni pomocí syntaxe $(symbol-name):
<Image Guid="$(ShellCommandGuid)" ID="$(cmdidSaveAll)" >
<Source Uri="/$(AssemblyName);Component/Resources/image.xaml" />
</Image>
Některé symboly jsou předdefinované pro všechny manifesty. Ty lze použít v atributu <Uri prvku Source> nebo <Import> k odkazování cest na místním počítači.
Symbol | Popis |
---|---|
CommonProgramFiles | Hodnota proměnné prostředí %CommonProgramFiles% |
LocalAppData | Hodnota proměnné prostředí %LocalAppData% |
ManifestFolder | Složka obsahující soubor manifestu |
Dokumenty | Úplná cesta ke složce Dokumenty aktuálního uživatele |
ProgramFiles | Hodnota proměnné prostředí %ProgramFiles% |
Systémový | Složka Windows\System32 |
WinDir | Hodnota proměnné prostředí %WinDir% |
Obrázek
Element <Image> definuje image, na kterou lze odkazovat pomocí monikeru. Identifikátor GUID a ID pořízené společně tvoří moniker image. Moniker obrázku musí být jedinečný v celé knihovně obrázků. Pokud má daný moniker více než jeden obrázek, první obrázek, ke kterému došlo při vytváření knihovny, je ten, který je zachován.
Musí obsahovat alespoň jeden zdroj. Zdroje neutrální velikosti poskytnou nejlepší výsledky v široké škále velikostí, ale nevyžadují se. Pokud je služba požádána o obrázek velikosti, která není definovaná v <prvku Image> a neexistuje žádný zdroj neutrální velikosti, služba zvolí nejlepší zdroj specifický pro danou velikost a škáluje ho na požadovanou velikost.
<Image Guid="guid" ID="int" AllowColorInversion="true/false">
<Source ... />
<!-- optional additional Source elements -->
</Image>
Atribut | Definice |
---|---|
Guid | [Povinné] Část identifikátoru GUID v monikeru obrázku |
ID | [Povinné] Část ID monikeru obrázku |
AllowColorInversion | [Volitelné, výchozí hodnota true] Označuje, jestli může mít obrázek barvy invertované programově při použití na tmavém pozadí. |
Source
Element <Source> definuje jeden zdrojový prostředek obrázku (XAML a PNG).
<Source Uri="uri" Background="background">
<!-- optional NativeResource element -->
</Source>
Atribut | Definice |
---|---|
Identifikátor URI | [Povinné] Identifikátor URI, který definuje, odkud lze image načíst. Může se zobrazit některý z následujících: – Identifikátor URI balíčku používající autoritu application:/// – Absolutní referenční informace k prostředkům komponenty – Cesta k souboru obsahujícímu nativní prostředek |
Pozadí | [Volitelné] Určuje, co se má zdroj použít na pozadí. Může se zobrazit některý z následujících: Světlo: Zdroj lze použít na světlém pozadí. Tmavá: Zdroj lze použít na tmavém pozadí. HighContrast: Zdroj lze použít na libovolném pozadí v režimu Vysoký kontrast. HighContrastLight: Zdroj lze použít na světlém pozadí v režimu Vysoký kontrast. HighContrastDark: Zdroj lze použít na tmavém pozadí v režimu Vysoký kontrast. Pokud atribut Background vynecháte, lze zdroj použít na libovolném pozadí. Pokud je pozadí světlé, tmavé, HighContrastLight nebo HighContrastDark, barvy zdroje se nikdy invertují. Pokud je pozadí vynecháno nebo nastaveno na HighContrast, inverze zdrojových barev je řízena atributem AllowColorInversion obrázku. |
<Zdrojový> prvek může mít přesně jeden z následujících volitelných dílčích prvků:
Element | Atributy (všechny povinné) | Definice |
---|---|---|
<Velikost> | Hodnota | Zdroj se použije pro obrázky dané velikosti (v jednotkách zařízení). Obrázek bude čtvercový. |
<SizeRange> | MinSize, MaxSize | Zdroj se použije pro obrázky z MinSize na MaxSize (v jednotkách zařízení) včetně. Obrázek bude čtvercový. |
<Dimenze> | Šířka, Výška | Zdroj se použije pro obrázky dané šířky a výšky (v jednotkách zařízení). |
<DimensionRange> | MinWidth, MinHeight, MaxWidth, MaxHeight |
Zdroj se použije pro obrázky z minimální šířky/výšky až po maximální šířku/výšku (v jednotkách zařízení). |
<Zdrojový> prvek může mít také volitelný <subelement NativeResource>, který definuje <zdroj>, který je načten z nativního sestavení, a nikoli spravované sestavení.
<NativeResource Type="type" ID="int" />
Atribut | Definice |
---|---|
Typ | [Povinné] Typ nativního prostředku, XAML nebo PNG |
ID | [Povinné] Část ID celého čísla nativního prostředku |
ImageList
Element <ImageList> definuje kolekci obrázků, které lze vrátit v jednom pruhu. Pás je podle potřeby postaven na poptávce.
<ImageList>
<ContainedImage Guid="guid" ID="int" External="true/false" />
<!-- optional additional ContainedImage elements -->
</ImageList>
Atribut | Definice |
---|---|
Guid | [Povinné] Část identifikátoru GUID v monikeru obrázku |
ID | [Povinné] Část ID monikeru obrázku |
Externí | [Volitelné, výchozí false] Určuje, jestli moniker obrázku odkazuje na obrázek v aktuálním manifestu. |
Moniker pro obsaženou image nemusí odkazovat na obrázek definovaný v aktuálním manifestu. Pokud v knihovně obrázků nenajdete obsažený obrázek, použije se prázdný zástupný obrázek na svém místě.
Použití služby image
První kroky (spravované)
Pokud chcete použít službu image, musíte do projektu přidat odkazy na některá nebo všechna následující sestavení:
Microsoft.VisualStudio.ImageCatalog.dll
- Vyžaduje se, pokud používáte předdefinovaný katalog imagí PoleMonikers.
Microsoft.VisualStudio.Imaging.dll
- Vyžaduje se, pokud v uživatelském rozhraní WPF používáte nástroje CrispImage a ImageThemingUtilities .
Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime.dll
Vyžaduje se, pokud používáte typy ImageMoniker a ImageAttributes .
Hodnoty EmbedInteropTypes by měly být nastaveny na hodnotu true.
Microsoft.VisualStudio.Shell.Interop.14.0.DesignTime
Vyžaduje se, pokud použijete typ IVsImageService2 .
Hodnoty EmbedInteropTypes by měly být nastaveny na hodnotu true.
Microsoft.VisualStudio.Utilities.dll
- Vyžaduje se, pokud použijete BrushToColorConverter pro ImageThemingUtilities.ImageBackgroundColor v uživatelském rozhraní WPF.
Microsoft.VisualStudio.Shell.<VSVersion.0>
- Vyžaduje se, pokud použijete typ IVsUIObject .
Microsoft.VisualStudio.Shell.Interop.10.0.dll
Vyžaduje se, pokud použijete pomocné rutiny uživatelského rozhraní související s WinForms.
Hodnoty EmbedInteropTypes by měly být nastaveny na true.
První kroky (nativní)
Pokud chcete použít službu image, musíte do projektu zahrnout některé nebo všechny následující hlavičky:
PoleImageIds.h
- Vyžaduje se, pokud používáte integrovaný katalog imagí PoleMonikers, ale nelze použít ImageMoniker typ, například při vrácení hodnot z IVsHierarchy GetGuidProperty nebo GetProperty volání.
PoleMonikers.h
- Vyžaduje se, pokud používáte předdefinovaný katalog imagí PoleMonikers.
ImageParameters140.h
- Vyžaduje se, pokud používáte typy ImageMoniker a ImageAttributes .
VSShell140.h
- Vyžaduje se, pokud použijete typ IVsImageService2 .
ImageThemingUtilities.h
Vyžaduje se, pokud nemůžete nechat službu image zpracovávat za vás.
Tuto hlavičku nepoužívejte, pokud služba image dokáže zpracovat motivy obrázků.
VsDpiAwareness.h
- Vyžaduje se, pokud k získání aktuálního DPI použijete pomocné rutiny pro rozpoznávání DPI.
Návody psát nové uživatelské rozhraní WPF?
Začněte tím, že do projektu přidáte odkazy na sestavení požadované v předchozí části kroků. Nemusíte přidávat všechny, takže přidejte jenom potřebné odkazy. (Poznámka: Pokud používáte nebo máte přístup k Barvy místo štětců pak můžete přeskočit odkaz na nástroje, protože nebudete potřebovat převaděč.)
Vyberte požadovaný obrázek a získejte jeho moniker. Použijte PoleMoniker nebo použijte vlastní, pokud máte vlastní image a monikers.
Přidejte do xaml nástroje CrispImages . (Viz následující příklad.)
Nastavte ImageThemingUtilities.ImageBackgroundColor vlastnost v hierarchii uživatelského rozhraní. (Toto nastavení by mělo být nastaveno v umístění, kde je známá barva pozadí, nikoli nutně na CrispImage.) (Viz následující příklad.)
<Window
x:Class="WpfApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:imaging="clr-namespace:Microsoft.VisualStudio.Imaging;assembly=Microsoft.VisualStudio.Imaging"
xmlns:theming="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Imaging"
xmlns:utilities="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Utilities"
xmlns:catalog="clr-namespace:Microsoft.VisualStudio.Imaging;assembly=Microsoft.VisualStudio.ImageCatalog"
Title="MainWindow" Height="350" Width="525" UseLayoutRounding="True">
<Window.Resources>
<utilities:BrushToColorConverter x:Key="BrushToColorConverter"/>
</Window.Resources>
<StackPanel Background="White" VerticalAlignment="Center"
theming:ImageThemingUtilities.ImageBackgroundColor="{Binding Background, RelativeSource={RelativeSource Self}, Converter={StaticResource BrushToColorConverter}}">
<imaging:CrispImage Width="16" Height="16" Moniker="{x:Static catalog:KnownMonikers.MoveUp}" />
</StackPanel>
</Window>
Návody aktualizovat existující uživatelské rozhraní WPF?
Aktualizace existujícího uživatelského rozhraní WPF je relativně jednoduchý proces, který se skládá ze tří základních kroků:
Nahraďte všechny <prvky obrázku> v uživatelském <rozhraní prvky CrispImage> .
Změňte všechny atributy Zdroje na atributy Moniker.
Pokud se obrázek nikdy nezmění a používáte PoleMonikers, pak staticky vytvořte vazbu této vlastnosti na PoleMoniker. (Viz výše uvedený příklad.)
Pokud se image nikdy nezmění a používáte vlastní image, staticky vytvořte vazbu na vlastní moniker.
Pokud se obrázek může změnit, vytvořte vazbu atributu Moniker na vlastnost kódu, která upozorní na změny vlastností.
Někde v hierarchii uživatelského rozhraní nastavte ImageThemingUtilities.ImageBackgroundColor , abyste měli jistotu, že inverze barev funguje správně.
- To může vyžadovat použití BrushToColorConverter třídy. (Viz výše uvedený příklad.)
Návody aktualizovat uživatelské rozhraní Win32?
Do kódu přidejte následující kód, ať je to vhodné, pokud chcete nahradit nezpracované načítání obrázků. Podle potřeby přepněte hodnoty pro vrácení HBITMAPs oproti HICON a HIMAGELIST.
Získání služby image
CComPtr<IVsImageService2> spImgSvc;
CGlobalServiceProvider::HrQueryService(SID_SVsImageService, &spImgSvc);
Vyžádání obrázku
UINT dpiX, dpiY;
HWND hwnd = // get the HWND where the image will be displayed
VsUI::CDpiAwareness::GetDpiForWindow(hwnd, &dpiX, &dpiY);
ImageAttributes attr = { 0 };
attr.StructSize = sizeof(attributes);
attr.Format = DF_Win32;
// IT_Bitmap for HBITMAP, IT_Icon for HICON, IT_ImageList for HIMAGELIST
attr.ImageType = IT_Bitmap;
attr.LogicalWidth = 16;
attr.LogicalHeight = 16;
attr.Dpi = dpiX;
// Desired RGBA color, if you don't use this, don't set IAF_Background below
attr.Background = 0xFFFFFFFF;
attr.Flags = IAF_RequiredFlags | IAF_Background;
CComPtr<IVsUIObject> spImg;
// Replace this KnownMoniker with your desired ImageMoniker
spImgSvc->GetImage(KnownMonikers::Blank, attributes, &spImg);
Návody aktualizovat uživatelské rozhraní WinForms?
Do kódu přidejte následující kód, ať je to vhodné, pokud chcete nahradit nezpracované načítání obrázků. Podle potřeby přepněte hodnoty pro vrácení rastrových obrázků a ikon.
Užitečný příkaz using
using GelUtilities = Microsoft.Internal.VisualStudio.PlatformUI.Utilities;
Získání služby image
// This or your preferred way of querying for Visual Studio services
IVsImageService2 imageService = (IVsImageService2)Package.GetGlobalService(typeof(SVsImageService));
Žádost o image
Control control = // get the control where the image will be displayed
ImageAttributes attributes = new ImageAttributes
{
StructSize = Marshal.SizeOf(typeof(ImageAttributes)),
// IT_Bitmap for Bitmap, IT_Icon for Icon, IT_ImageList for ImageList
ImageType = (uint)_UIImageType.IT_Bitmap,
Format = (uint)_UIDataFormat.DF_WinForms,
LogicalWidth = 16,
LogicalHeight = 16,
Dpi = (int)DpiAwareness.GetWindowDpi(control.Handle);
// Desired RGBA color, if you don't use this, don't set IAF_Background below
Background = 0xFFFFFFFF,
Flags = unchecked((uint)_ImageAttributesFlags.IAF_RequiredFlags | _ImageAttributesFlags.IAF_Background),
};
// Replace this KnownMoniker with your desired ImageMoniker
IVsUIObject uIObj = imageService.GetImage(KnownMonikers.Blank, attributes);
Bitmap bitmap = (Bitmap)GelUtilities.GetObjectData(uiObj); // Use this if you need a bitmap
// Icon icon = (Icon)GelUtilities.GetObjectData(uiObj); // Use this if you need an icon
Návody použít monikery obrázků v novém okně nástroje?
Šablona projektu balíčku VSIX byla aktualizována pro Visual Studio 2015. Pokud chcete vytvořit nové okno nástroje, klikněte pravým tlačítkem myši na projekt VSIX a vyberte Přidat>novou položku (Ctrl+Shift+A). V uzlu Rozšiřitelnost pro jazyk projektu vyberte Vlastní okno nástrojů, pojmenujte okno nástroje a stiskněte tlačítko Přidat .
Toto jsou klíčová místa pro použití monikers v okně nástroje. Postupujte podle pokynů pro každý z nich:
Karta okna nástroje, když jsou karty dostatečně malé (používá se také v přepínači okna Ctrl+Tab).
Přidejte tento řádek do konstruktoru pro třídu, která je odvozena od ToolWindowPane typu:
// Replace this KnownMoniker with your desired ImageMoniker this.BitmapImageMoniker = KnownMonikers.Blank;
Příkaz k otevření okna nástroje.
.vsct
V souboru balíčku upravte příkazové tlačítko okna nástroje:<Button guid="guidPackageCmdSet" id="CommandId" priority="0x0100" type="Button"> <Parent guid="guidSHLMainMenu" id="IDG_VS_WNDO_OTRWNDWS1"/> <!-- Replace this KnownMoniker with your desired ImageMoniker --> <Icon guid="ImageCatalogGuid" id="Blank" /> <!-- Add this --> <CommandFlag>IconIsMoniker</CommandFlag> <Strings> <ButtonText>MyToolWindow</ButtonText> </Strings> </Button>
Za elementy se ujistěte,
<Extern>
že v horní části souboru existuje také následující:<Include href="KnownImageIds.vsct"/>
Návody použít monikery obrázků v existujícím okně nástroje?
Aktualizace existujícího okna nástroje tak, aby používala monikery obrázků, se podobá krokům pro vytvoření nového okna nástroje.
Toto jsou klíčová místa pro použití monikers v okně nástroje. Postupujte podle pokynů pro každý z nich:
Karta okna nástroje, když jsou karty dostatečně malé (používá se také v přepínači okna Ctrl+Tab).
Odeberte tyto řádky (pokud existují) v konstruktoru pro třídu, která je odvozena od ToolWindowPane typu:
this.BitmapResourceID = <Value>; this.BitmapIndex = <Value>;
Viz krok 1 části "Návody použití monikers obrázku v novém okně nástroje?" výše.
Příkaz k otevření okna nástroje.
- Podívejte se na krok 2 části "Návody použití monikers obrázků v novém okně nástroje?" výše.
Návody použít obrázky monikers v souboru .vsct?
Aktualizujte .vsct
soubor podle níže uvedených komentářových řádků:
<?xml version="1.0" encoding="utf-8"?>
<CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Include the definitions for images included in the VS image catalog -->
<Include href="KnownImageIds.vsct"/>
<Commands package="guidMyPackage">
<Buttons>
<Button guid="guidMyCommandSet" id="cmdidMyCommand" priority="0x0000" type="Button">
<!-- Add an Icon element, changing the attributes to match the image moniker you want to use.
In this case, we're using the Guid for the VS image catalog.
Change the id attribute to be the ID of the desired image moniker. -->
<Icon guid="ImageCatalogGuid" id="OpenFolder" />
<CommandFlag>DynamicVisibility</CommandFlag>
<CommandFlag>DefaultInvisible</CommandFlag>
<CommandFlag>DefaultDisabled</CommandFlag>
<CommandFlag>CommandWellOnly</CommandFlag>
<CommandFlag>IconAndText</CommandFlag>
<!-- Add the IconIsMoniker CommandFlag -->
<CommandFlag>IconIsMoniker</CommandFlag>
<Strings>
<ButtonText>Quick Fixes...</ButtonText>
<CommandName>Show Quick Fixes</CommandName>
<CanonicalName>ShowQuickFixes</CanonicalName>
<LocCanonicalName>ShowQuickFixes</LocCanonicalName>
</Strings>
</Button>
</Buttons>
</Commands>
<!-- It is recommended that you remove <Bitmap> elements that are no longer used in the vsct file -->
<Symbols>
<GuidSymbol name="guidMyPackage" value="{1491e936-6ffe-474e-8371-30e5920d8fdd}" />
<GuidSymbol name="guidMyCommandSet" value="{10347de4-69a9-47f4-a950-d3301f6d2bc7}">
<IDSymbol name="cmdidMyCommand" value="0x9437" />
</GuidSymbol>
</Symbols>
</CommandTable>
Co když můj soubor .vsct musí být také čtený staršími verzemi sady Visual Studio?
Starší verze sady Visual Studio nerozpozná příznak příkazu IconIsMoniker . Image ze služby imagí můžete použít ve verzích sady Visual Studio, které ji podporují, ale ve starších verzích sady Visual Studio nadále používat starší obrázky. Uděláte to tak, že soubor ponecháte .vsct
beze změny (a proto kompatibilní se staršími verzemi sady Visual Studio) a vytvoříte soubor CSV (hodnoty oddělené čárkami), který se mapuje z párů GUID/ID definovaných v .vsct
elementu Bitmaps> souboru <na dvojice identifikátorů GUID/ID obrázku.
Formát souboru CSV mapování je následující:
Icon guid, Icon id, Moniker guid, Moniker id
b714fcf7-855e-4e4c-802a-1fd87144ccad,1,fda30684-682d-421c-8be4-650a2967058e,100
b714fcf7-855e-4e4c-802a-1fd87144ccad,2,fda30684-682d-421c-8be4-650a2967058e,200
Soubor CSV je nasazen s balíčkem a jeho umístění je určeno IconMappingFilename vlastnost ProvideMenuResource package atribut:
[ProvideMenuResource("MyPackage.ctmenu", 1, IconMappingFilename="IconMappings.csv")]
IconMappingFilename je buď relativní cesta implicitně rootovaná na $PackageFolder$ (jako v příkladu výše), nebo absolutní cesta explicitně rootovaná v adresáři definovaném proměnnou prostředí, například @"%UserProfile%\dir1\dir2\MyMappingFile.csv".
Návody portovat systém projektu?
Jak poskytnout ImageMonikers pro projekt
Implementujte VSHPROPID_SupportsIconMonikers na IVsHierarchy projektu a vraťte hodnotu true.
Implementujte VSHPROPID_IconMonikerImageList (pokud původní projekt používal VSHPROPID_IconImgList) nebo VSHPROPID_IconMonikerGuid, VSHPROPID_IconMonikerId, VSHPROPID_OpenFolderIconMonikerGuid, VSHPROPID_OpenFolderIconMonikerId (pokud původní projekt používal VSHPROPID_IconHandle a VSHPROPID_OpenFolderIconHandle).
Změňte implementaci původních identifikátorů VSHPROPIDs pro ikony a vytvořte starší verze ikon, pokud je body rozšíření požadují. IVsImageService2 poskytuje funkce potřebné k získání těchto ikon.
Další požadavky na varianty projektů VB/C#
Implementujte VSHPROPID_SupportsIconMonikers pouze v případě, že zjistíte, že projekt je nejkrajnější. Jinak skutečná vnější příchuť nemusí podporovat obrázky monikery ve skutečnosti a vaše základní příchuť může efektivně "skrýt" přizpůsobené obrázky.
Návody použít v CPS obrázky monikers?
Nastavení vlastních imagí v systému CPS (Common Project System) lze provést ručně nebo pomocí šablony položky, která je součástí sady SDK rozšiřitelnosti systému projektů.
Použití sady SDK rozšiřitelnosti systému projektu
Pokud chcete přizpůsobit obrázky CPS, postupujte podle pokynů v části Zadání vlastních ikon pro typ projektu nebo položky. Další informace o cps najdete v dokumentaci k rozšiřitelnosti projectového systému sady Visual Studio.
Ruční použití ImageMonikers
Implementujte a exportujte rozhraní IProjectTreeModifier v systému projektu.
Určete, který moniker pole PoleMoniker nebo vlastní moniker image chcete použít.
V ApplyModifications metoda proveďte následující kroky někam v metodě před vrácením nového stromu, podobně jako v následujícím příkladu:
// Replace this KnownMoniker with your desired ImageMoniker tree = tree.SetIcon(KnownMonikers.Blank.ToProjectSystemType());
Pokud vytváříte nový strom, můžete vlastní image nastavit předáním požadovaných monikers do NewTree metody, podobně jako v následujícím příkladu:
// Replace this KnownMoniker with your desired ImageMoniker ProjectImageMoniker icon = KnownMonikers.FolderClosed.ToProjectSystemType(); ProjectImageMoniker expandedIcon = KnownMonikers.FolderOpened.ToProjectSystemType(); return this.ProjectTreeFactory.Value.NewTree(/*caption*/<value>, /*filePath*/<value>, /*browseObjectProperties*/<value>, icon, expandedIcon);
Návody převést ze skutečného pruhu obrázku na pruh obrázků založený na monikeru?
Potřebuji podporovat HIMAGELISTs
Pokud už existuje pruh obrázku pro váš kód, který chcete aktualizovat tak, aby používal službu image, ale rozhraní API, která vyžadují předání seznamů obrázků, jsou omezené rozhraními API, které vyžadují předávání seznamů obrázků, můžete stále získat výhody služby image. Pokud chcete vytvořit pruh obrázků založený na monikeru, postupujte podle následujících kroků a vytvořte manifest z existujících monikerů.
Spusťte nástroj ManifestFromResources a předáte ho pruhu obrázku. Tím se vygeneruje manifest pro pruh.
- Doporučeno: Zadejte jiný než výchozí název manifestu, který bude vyhovovat jeho použití.
Pokud používáte pouze pole KnownMonikers, postupujte takto:
<Nahraďte část Obrázky> manifestu obrázky>/<.
Odeberte všechna ID subimage (cokoli s <názvem> imagetrip##).
Doporučeno: Přejmenujte symbol AssetsGuid a symbol pruhu obrázků tak, aby vyhovoval jeho použití.
Nahraďte identifikátor GUID jednotlivých ContainedImage $(ImageCatalogGuid), nahraďte ID každého ContainedImage $(<moniker>) a přidejte do každého atributu ContainedImage atribut External="true".
- <Moniker> by měl být nahrazen polem PoleMoniker , který odpovídá obrázku, ale s "PoleMonikers" odebrán z názvu.
Add <Import Manifest="$(ManifestFolder)\<Relative install dir path to *>\Microsoft.VisualStudio.ImageCatalog.imagemanifest" /*> to the top of the <Symbols> section.
- Relativní cesta je určena umístěním nasazení definovaným v nastavení pro vytváření manifestu.
Spuštěním nástroje ManifestToCode vygenerujte obálky tak, aby existující kód měl moniker, který může použít k dotazování služby image pro pruh image.
- Doporučeno: Zadejte nedefaultní názvy obálky a obory názvů tak, aby vyhovovaly jejich použití.
Proveďte všechny doplňky, nastavte vytváření a nasazení a další změny kódu, aby fungovaly se službou image a novými soubory.
Ukázkový manifest, včetně interních i externích i interních i externích imagí, abyste viděli, jak by měl vypadat:
<?xml version="1.0"?>
<ImageManifest
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.microsoft.com/VisualStudio/ImageManifestSchema/2014">
<Symbols>
<!-- This needs to be the relative path from your manifest to the ImageCatalog's manifest
where $(ManifestFolder) is the deployed location of this manifest. -->
<Import Manifest="$(ManifestFolder)\<RelPath>\Microsoft.VisualStudio.ImageCatalog.imagemanifest" />
<String Name="Resources" Value="/My.Assembly.Name;Component/Resources/ImageStrip" />
<Guid Name="ImageGuid" Value="{fb41b7ef-6587-480c-aa27-5b559d42cfc9}" />
<Guid Name="ImageStripGuid" Value="{9c84a570-d9a7-4052-a340-188fb276f973}" />
<ID Name="MyImage_0" Value="100" />
<ID Name="MyImage_1" Value="101" />
<ID Name="InternalList" Value="1001" />
<ID Name="ExternalList" Value="1002" />
</Symbols>
<Images>
<Image Guid="$(ImageGuid)" ID="$(MyImage_0)">
<Source Uri="$(Resources)/MyImage_0.png">
<Size Value="16" />
</Source>
</Image>
<Image Guid="$(ImageGuid)" ID="$(MyImage_1)">
<Source Uri="$(Resources)/MyImage_1.png">
<Size Value="16" />
</Source>
</Image>
</Images>
<ImageLists>
<ImageList Guid="$(ImageStripGuid)" ID="$(InternalList)">
<ContainedImage Guid="$(ImageGuid)" ID="$(MyImage_0)" />
<ContainedImage Guid="$(ImageGuid)" ID="$(MyImage_1)" />
</ImageList>
<ImageList Guid="$(ImageStripGuid)" ID="$(ExternalList)">
<ContainedImage Guid="$(ImageCatalogGuid)" ID="$(StatusError)" External="true" />
<ContainedImage Guid="$(ImageCatalogGuid)" ID="$(StatusWarning)" External="true" />
<ContainedImage Guid="$(ImageCatalogGuid)" ID="$(StatusInformation)" External="true" />
</ImageList>
</ImageLists>
</ImageManifest>
Nemusím podporovat HIMAGELISTs
Určete sadu známýchmonikerů, které odpovídají obrázkům v pruhu obrázku, nebo vytvořte vlastní monikery pro obrázky v pruhu obrázku.
Aktualizujte mapování, které jste použili k získání obrázku v požadovaném indexu v pruhu obrázku, aby se místo toho používaly monikery.
Aktualizujte kód tak, aby používal službu image k vyžádání monikerů prostřednictvím aktualizovaného mapování. (To může znamenat aktualizaci na CrispImages pro spravovaný kód nebo vyžádání HBITMAPs nebo HICON ze služby imagí a jejich předávání pro nativní kód.)
Testování imagí
Pomocí nástroje Prohlížeč knihovny obrázků můžete otestovat manifesty obrázků, abyste měli jistotu, že vše je správně vytvořené. Nástroj najdete v sadě Visual Studio 2015 SDK. Dokumentaci k tomuto nástroji a dalším najdete tady.
Další materiály
Ukázky
Několik ukázek sady Visual Studio na GitHubu bylo aktualizováno, aby ukázalo, jak používat službu image jako součást různých bodů rozšiřitelnosti sady Visual Studio.
Zkontrolujte http://github.com/Microsoft/VSSDK-Extensibility-Samples
nejnovější ukázky.
Nástroje
Byla vytvořena sada nástrojů podpory pro službu Image Service, která pomáhá při vytváření nebo aktualizaci uživatelského rozhraní, které funguje se službou Image Service. Další informace o jednotlivých nástrojích najdete v dokumentaci, která obsahuje nástroje. Nástroje jsou součástí sady Visual Studio 2015 SDK.
ManifestFromResources
Nástroj Manifest z prostředků vezme seznam prostředků image (PNG nebo XAML) a vygeneruje soubor manifestu obrázku pro použití těchto imagí se službou image.
ManifestToCode
Nástroj Manifest to Code vezme soubor manifestu obrázku a vygeneruje soubor obálky pro odkazování na hodnoty manifestu v kódu (C++, C# nebo VB) nebo .vsct
souborech.
ImageLibraryViewer
Nástroj Prohlížeč knihovny obrázků může načíst manifesty obrázků a umožňuje uživateli manipulovat s nimi stejným způsobem, jakým by Visual Studio zajistilo, že je manifest správně vytvořený. Uživatel může změnit pozadí, velikosti, nastavení DPI, vysoký kontrast a další nastavení. Zobrazuje také informace o načítání, které v manifestech vyhledá chyby a zobrazí zdrojové informace pro každý obrázek v manifestu.
Často kladené dotazy
Existují všechny závislosti, které musíte zahrnout při načítání <reference Include="Microsoft.VisualStudio.*. Interop.14.0.DesignTime" />?
- Nastavte EmbedInteropTypes="true" u všech knihoven DLL zprostředkovatele komunikace.
Návody nasadit manifest image s mým rozšířením?
.imagemanifest
Přidejte soubor do projektu.Nastavte možnost Zahrnout do VSIX na hodnotu True.
Moje obrázky stále nefungují, jak zjistím, co je špatně?
Visual Studio nemusí najít manifest obrázku. Z důvodů výkonu Sada Visual Studio omezuje hloubku hledání ve složkách, proto doporučujeme, aby se manifest obrázku uchovával v kořenové složce vašeho rozšíření.
V souboru manifestu obrázku možná chybí informace o sestavení. Sestavení, která jsou silně pojmenovaná, vyžadují další informace, aby bylo možné načíst visual Studio. Pokud chcete načíst sestavení se silným názvem, musíte do identifikátorů URI prostředků pro image v manifestu image zahrnout (kromě názvu sestavení) verzi sestavení a token veřejného klíče.
<ImageManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/ImageManifestSchema/2014"> <Symbols> <String Name="Resources" Value="/Microsoft.VisualStudio.Shell.UI.Internal;v17.0.0.0;b03f5f7f11d50a3a;Component/Resources" /> ... </Symbols> ... </ImageManifest>
Pravděpodobně chybí položka základu kódu pro sestavení image. Pokud sestavení ještě není načteno v době, kdy ji Sada Visual Studio potřebuje, bude muset vědět, kde najít sestavení, aby bylo možné jej načíst. Chcete-li přidat základ kódu pro vaše sestavení, můžete použít ProvideCodeBaseAttribute k zajištění vygenerování a zahrnutí položky základu kódu do souboru pkgdef vašeho rozšíření.
[assembly: ProvideCodeBase(AssemblyName = "ClassLibrary1", Version = "1.0.0.0", CodeBase = "$PackageFolder$\\ClassLibrary1.dll")]
Pokud předchozí možnosti problém s načtením image nevyřeší, můžete protokolování povolit přetažením následujících položek do souboru pkgdef ve vašem rozšíření:
[$RootKey$\ImageLibrary] "TraceLevel"="Verbose" "TraceFilename"="ImageLibrary.log"
Tím se ve složce %UserProfile% vytvoří soubor protokolu s názvem ImageLibrary.log. Po přidání těchto položek do pkgdef nezapomeňte spustit příkaz "devenv /updateConfiguration" z příkazového řádku vývojáře. Tím se zajistí, že jsou povolené položky protokolování a že služba VS aktualizuje mezipaměť manifestu image, aby pomohla najít případné chyby, ke kterým může dojít při čtení manifestu image. Pokud pak projdete scénářem, ve kterém se očekává načtení image, soubor protokolu bude obsahovat protokolování registrace i protokolování požadavků pro vaši image.
Aktualizujem systém projektu CPS. Co se stalo s ImageName a StockIconService?
Ty byly odebrány při aktualizaci CPS tak, aby používaly monikers. Už nemusíte volat StockIconService, stačí předat požadované PoleMoniker metodě nebo vlastnosti pomocí toProjectSystemType() rozšiřující metoda v CPS nástroje. Mapování z ImageName na PoleMonikers najdete níže:
ImageName PoleMoniker ImageName.OfflineWebApp PoleImageIds.Web ImageName.WebReferencesFolder PoleImageIds.Web ImageName.OpenReferenceFolder KnownImageIds.FolderOpened ImageName.ReferenceFolder PoleImageIds.Reference ImageName.Reference PoleImageIds.Reference ImageName.SdlWebReference KnownImageIds.WebReferenceFolder ImageName.DiscoWebReference PoleImageIds.DynamicDiscoveryDocument ImageName.Folder KnownImageIds.FolderClosed ImageName.OpenFolder KnownImageIds.FolderOpened ImageName.ExcludedFolder PoleImageIds.HiddenFolderClosed ImageName.OpenExcludedFolder KnownImageIds.HiddenFolderOpened ImageName.ExcludedFile KnownImageIds.HiddenFile ImageName.DependentFile PoleImageIds.GenerateFile ImageName.MissingFile KnownImageIds.DocumentWarning ImageName.WindowsForm PoleImageIds.WindowsForm ImageName.WindowsUserControl PoleImageIds.UserControl ImageName.WindowsComponent KnownImageIds.ComponentFile ImageName.XmlSchema KnownImageIds.XMLSchema ImageName.XmlFile PoleImageIds.XMLFile ImageName.WebForm PoleImageIds.Web ImageName.WebService PoleImageIds.WebService ImageName.WebUserControl PoleImageIds.WebUserControl ImageName.WebCustomUserControl PoleImageIds.WebCustomControl ImageName.AspPage PoleImageIds.ASPFile ImageName.GlobalApplicationClass KnownImageIds.SettingsFile ImageName.WebConfig KnownImageIds.ConfigurationFile ImageName.HtmlPage PoleImageIds.HTMLFile ImageName.StyleSheet PoleImageIds.StyleSheet ImageName.ScriptFile KnownImageIds.JSScript ImageName.TextFile PoleImageIds.Document ImageName.SettingsFile KnownImageIds.Settings ImageName.Resources PoleImageIds.DocumentGroup ImageName.Bitmap KnownImageIds.Image ImageName.Icon KnownImageIds.IconFile ImageName.Image KnownImageIds.Image ImageName.ImageMap KnownImageIds.ImageMapFile ImageName.XWorld PoleImageIds.XWorldFile ImageName.Audio KnownImageIds.Sound ImageName.Video PoleImageIds.Media ImageName.Cab KnownImageIds.CABProject ImageName.Jar PoleImageIds.JARFile ImageName.DataEnvironment PoleImageIds.DataTable ImageName.PreviewFile KnownImageIds.Report ImageName.DanglingReference KnownImageIds.ReferenceWarning ImageName.XsltFile PoleImageIds.XSLTransform ImageName.Cursor PoleImageIds.CursorFile ImageName.AppDesignerFolder KnownImageIds.Property ImageName.Data KnownImageIds.Database ImageName.Application PoleImageIds.Application ImageName.DataSet PoleImageIds.DatabaseGroup ImageName.Pfx KnownImageIds.Certificate ImageName.Snk PoleImageIds.Rule ImageName.VisualBasicProject PoleImageIds.VBProjectNode ImageName.CSharpProject PoleImageIds.CSProjectNode ImageName.Empty PoleImageIds.Blank ImageName.MissingFolder PoleImageIds.FolderOffline ImageName.SharedImportReference PoleImageIds.SharedProject ImageName.SharedProjectCs PoleImageIds.CSSharedProject ImageName.SharedProjectVc PoleImageIds.CPPSharedProject ImageName.SharedProjectJs KnownImageIds.JSSharedProject ImageName.CSharpCodeFile PoleImageIds.CSFileNode ImageName.VisualBasicCodeFile PoleImageIds.VBFileNode
Aktualizujem poskytovatele seznamu dokončení. Jaké hodnoty PoleMonikers odpovídají starým hodnotám StandardGlyphGroup a StandardGlyph ?
Název Název Název GlyphGroupClass GlyphItemPublic ClassPublic GlyphGroupClass GlyphItemInternal ClassInternal GlyphGroupClass GlyphItemFriend ClassInternal GlyphGroupClass GlyphItemProtected ClassProtected GlyphGroupClass GlyphItemPrivate ClassPrivate GlyphGroupClass GlyphItemShortcut ClassShortcut GlyphGroupConstant GlyphItemPublic ConstantPublic GlyphGroupConstant GlyphItemInternal ConstantInternal GlyphGroupConstant GlyphItemFriend ConstantInternal GlyphGroupConstant GlyphItemProtected ConstantProtected GlyphGroupConstant GlyphItemPrivate ConstantPrivate GlyphGroupConstant GlyphItemShortcut ConstantShortcut GlyphGroupDelegate GlyphItemPublic DelegatePublic GlyphGroupDelegate GlyphItemInternal DelegateInternal GlyphGroupDelegate GlyphItemFriend DelegateInternal GlyphGroupDelegate GlyphItemProtected DelegateProtected GlyphGroupDelegate GlyphItemPrivate DelegatePrivate GlyphGroupDelegate GlyphItemShortcut DelegátIShortcut GlyphGroupEnum GlyphItemPublic VýčetPublic GlyphGroupEnum GlyphItemInternal VýčetInternal GlyphGroupEnum GlyphItemFriend VýčetInternal GlyphGroupEnum GlyphItemProtected VýčetProtected GlyphGroupEnum GlyphItemPrivate VýčetPrivate GlyphGroupEnum GlyphItemShortcut VýčetShortcut GlyphGroupEnumMember GlyphItemPublic VýčetItemPublic GlyphGroupEnumMember GlyphItemInternal VýčetItemInternal GlyphGroupEnumMember GlyphItemFriend VýčetItemInternal GlyphGroupEnumMember GlyphItemProtected VýčetItemProtected GlyphGroupEnumMember GlyphItemPrivate VýčetItemPrivate GlyphGroupEnumMember GlyphItemShortcut VýčetItemShortcut GlyphGroupEvent GlyphItemPublic EventPublic GlyphGroupEvent GlyphItemInternal EventInternal GlyphGroupEvent GlyphItemFriend EventInternal GlyphGroupEvent GlyphItemProtected EventProtected GlyphGroupEvent GlyphItemPrivate EventPrivate GlyphGroupEvent GlyphItemShortcut EventShortcut GlyphGroupException GlyphItemPublic ExceptionPublic GlyphGroupException GlyphItemInternal ExceptionInternal GlyphGroupException GlyphItemFriend ExceptionInternal GlyphGroupException GlyphItemProtected ExceptionProtected GlyphGroupException GlyphItemPrivate ExceptionPrivate GlyphGroupException GlyphItemShortcut ExceptionShortcut GlyphGroupField GlyphItemPublic FieldPublic GlyphGroupField GlyphItemInternal FieldInternal GlyphGroupField GlyphItemFriend FieldInternal GlyphGroupField GlyphItemProtected FieldProtected GlyphGroupField GlyphItemPrivate FieldPrivate GlyphGroupField GlyphItemShortcut PoleShortcut GlyphGroupInterface GlyphItemPublic InterfacePublic GlyphGroupInterface GlyphItemInternal InterfaceInternal GlyphGroupInterface GlyphItemFriend InterfaceInternal GlyphGroupInterface GlyphItemProtected InterfaceProtected GlyphGroupInterface GlyphItemPrivate InterfacePrivate GlyphGroupInterface GlyphItemShortcut InterfaceShortcut GlyphGroupMacro GlyphItemPublic MakroPublic GlyphGroupMacro GlyphItemInternal MacroInternal GlyphGroupMacro GlyphItemFriend MacroInternal GlyphGroupMacro GlyphItemProtected MakroProtected GlyphGroupMacro GlyphItemPrivate MakroPrivate GlyphGroupMacro GlyphItemShortcut MakroShortcut GlyphGroupMap GlyphItemPublic MapPublic GlyphGroupMap GlyphItemInternal MapInternal GlyphGroupMap GlyphItemFriend MapInternal GlyphGroupMap GlyphItemProtected MapProtected GlyphGroupMap GlyphItemPrivate MapPrivate GlyphGroupMap GlyphItemShortcut MapShortcut GlyphGroupMapItem GlyphItemPublic MapItemPublic GlyphGroupMapItem GlyphItemInternal MapItemInternal GlyphGroupMapItem GlyphItemFriend MapItemInternal GlyphGroupMapItem GlyphItemProtected MapItemProtected GlyphGroupMapItem GlyphItemPrivate MapItemPrivate GlyphGroupMapItem GlyphItemShortcut MapItemShortcut GlyphGroupMethod GlyphItemPublic MethodPublic GlyphGroupMethod GlyphItemInternal MethodInternal GlyphGroupMethod GlyphItemFriend MethodInternal GlyphGroupMethod GlyphItemProtected MethodProtected GlyphGroupMethod GlyphItemPrivate MethodPrivate GlyphGroupMethod GlyphItemShortcut MethodShortcut GlyphGroupOverload GlyphItemPublic MethodPublic GlyphGroupOverload GlyphItemInternal MethodInternal GlyphGroupOverload GlyphItemFriend MethodInternal GlyphGroupOverload GlyphItemProtected MethodProtected GlyphGroupOverload GlyphItemPrivate MethodPrivate GlyphGroupOverload GlyphItemShortcut MethodShortcut GlyphGroupModule GlyphItemPublic ModulePublic GlyphGroupModule GlyphItemInternal ModuleInternal GlyphGroupModule GlyphItemFriend ModuleInternal GlyphGroupModule GlyphItemProtected ModuleProtected GlyphGroupModule GlyphItemPrivate ModulePrivate GlyphGroupModule GlyphItemShortcut ModuleShortcut GlyphGroupNamespace GlyphItemPublic NamespacePublic GlyphGroupNamespace GlyphItemInternal NamespaceInternal GlyphGroupNamespace GlyphItemFriend NamespaceInternal GlyphGroupNamespace GlyphItemProtected Obor názvůProtected GlyphGroupNamespace GlyphItemPrivate NamespacePrivate GlyphGroupNamespace GlyphItemShortcut NamespaceShortcut GlyphGroupOperator GlyphItemPublic OperatorPublic GlyphGroupOperator GlyphItemInternal OperatorInternal GlyphGroupOperator GlyphItemFriend OperatorInternal GlyphGroupOperator GlyphItemProtected OperatorProtected GlyphGroupOperator GlyphItemPrivate OperatorPrivate GlyphGroupOperator GlyphItemShortcut OperatorShortcut GlyphGroupProperty GlyphItemPublic PropertyPublic GlyphGroupProperty GlyphItemInternal PropertyInternal GlyphGroupProperty GlyphItemFriend PropertyInternal GlyphGroupProperty GlyphItemProtected PropertyProtected GlyphGroupProperty GlyphItemPrivate PropertyPrivate GlyphGroupProperty GlyphItemShortcut PropertyShortcut GlyphGroupStruct GlyphItemPublic StructurePublic GlyphGroupStruct GlyphItemInternal StructureInternal GlyphGroupStruct GlyphItemFriend StructureInternal GlyphGroupStruct GlyphItemProtected StructureProtected GlyphGroupStruct GlyphItemPrivate StructurePrivate GlyphGroupStruct GlyphItemShortcut StrukturaShortcut GlyphGroupTemplate GlyphItemPublic TemplatePublic GlyphGroupTemplate GlyphItemInternal TemplateInternal GlyphGroupTemplate GlyphItemFriend TemplateInternal GlyphGroupTemplate GlyphItemProtected TemplateProtected GlyphGroupTemplate GlyphItemPrivate TemplatePrivate GlyphGroupTemplate GlyphItemShortcut TemplateShortcut GlyphGroupTypedef GlyphItemPublic TypeDefinitionPublic GlyphGroupTypedef GlyphItemInternal TypeDefinitionInternal GlyphGroupTypedef GlyphItemFriend TypeDefinitionInternal GlyphGroupTypedef GlyphItemProtected TypeDefinitionProtected GlyphGroupTypedef GlyphItemPrivate TypeDefinitionPrivate GlyphGroupTypedef GlyphItemShortcut TypeDefinitionShortcut GlyphGroupType GlyphItemPublic TypePublic GlyphGroupType GlyphItemInternal TypeInternal GlyphGroupType GlyphItemFriend TypeInternal GlyphGroupType GlyphItemProtected TypeProtected GlyphGroupType GlyphItemPrivate TypePrivate GlyphGroupType GlyphItemShortcut TypeShortcut GlyphGroupUnion GlyphItemPublic UnionPublic GlyphGroupUnion GlyphItemInternal UnionInternal GlyphGroupUnion GlyphItemFriend UnionInternal GlyphGroupUnion GlyphItemProtected UnionProtected GlyphGroupUnion GlyphItemPrivate UnionPrivate GlyphGroupUnion GlyphItemShortcut UnionShortcut GlyphGroupVariable GlyphItemPublic FieldPublic GlyphGroupVariable GlyphItemInternal FieldInternal GlyphGroupVariable GlyphItemFriend FieldInternal GlyphGroupVariable GlyphItemProtected FieldProtected GlyphGroupVariable GlyphItemPrivate FieldPrivate GlyphGroupVariable GlyphItemShortcut PoleShortcut GlyphGroupValueType GlyphItemPublic ValueTypePublic GlyphGroupValueType GlyphItemInternal ValueTypeInternal GlyphGroupValueType GlyphItemFriend ValueTypeInternal GlyphGroupValueType GlyphItemProtected ValueTypeProtected GlyphGroupValueType GlyphItemPrivate ValueTypePrivate GlyphGroupValueType GlyphItemShortcut ValueTypeShortcut GlyphGroupIntrinsic GlyphItemPublic ObjectPublic GlyphGroupIntrinsic GlyphItemInternal ObjectInternal GlyphGroupIntrinsic GlyphItemFriend ObjectInternal GlyphGroupIntrinsic GlyphItemProtected ObjectProtected GlyphGroupIntrinsic GlyphItemPrivate ObjectPrivate GlyphGroupIntrinsic GlyphItemShortcut ObjectShortcut GlyphGroupJSharpMethod GlyphItemPublic MethodPublic GlyphGroupJSharpMethod GlyphItemInternal MethodInternal GlyphGroupJSharpMethod GlyphItemFriend MethodInternal GlyphGroupJSharpMethod GlyphItemProtected MethodProtected GlyphGroupJSharpMethod GlyphItemPrivate MethodPrivate GlyphGroupJSharpMethod GlyphItemShortcut MethodShortcut GlyphGroupJSharpField GlyphItemPublic FieldPublic GlyphGroupJSharpField GlyphItemInternal FieldInternal GlyphGroupJSharpField GlyphItemFriend FieldInternal GlyphGroupJSharpField GlyphItemProtected FieldProtected GlyphGroupJSharpField GlyphItemPrivate FieldPrivate GlyphGroupJSharpField GlyphItemShortcut PoleShortcut GlyphGroupJSharpClass GlyphItemPublic ClassPublic GlyphGroupJSharpClass GlyphItemInternal ClassInternal GlyphGroupJSharpClass GlyphItemFriend ClassInternal GlyphGroupJSharpClass GlyphItemProtected ClassProtected GlyphGroupJSharpClass GlyphItemPrivate ClassPrivate GlyphGroupJSharpClass GlyphItemShortcut ClassShortcut GlyphGroupJSharpNamespace GlyphItemPublic NamespacePublic GlyphGroupJSharpNamespace GlyphItemInternal NamespaceInternal GlyphGroupJSharpNamespace GlyphItemFriend NamespaceInternal GlyphGroupJSharpNamespace GlyphItemProtected Obor názvůProtected GlyphGroupJSharpNamespace GlyphItemPrivate NamespacePrivate GlyphGroupJSharpNamespace GlyphItemShortcut NamespaceShortcut GlyphGroupJSharpInterface GlyphItemPublic InterfacePublic GlyphGroupJSharpInterface GlyphItemInternal InterfaceInternal GlyphGroupJSharpInterface GlyphItemFriend InterfaceInternal GlyphGroupJSharpInterface GlyphItemProtected InterfaceProtected GlyphGroupJSharpInterface GlyphItemPrivate InterfacePrivate GlyphGroupJSharpInterface GlyphItemShortcut InterfaceShortcut GlyphGroupError Chyba stavu GlyphBscFile ClassFile GlyphAssembly Reference GlyfLibrary Knihovna GlyphVBProject VBProjectNode GlyphCoolProject CSProjectNode GlyphCppProject CPPProjectNode GlyphDialogId Dialog GlyphOpenFolder FolderOpened GlyphClosedFolder FolderClosed GlyphArrow GoToNext GlyphCSharpFile CSFileNode GlyphCSharpExpansion Fragment kódu GlyphKeyword IntellisenseKeyword GlyphInformation Informace o stavu GlyphReference TřídaMethodReference GlyphRecursion Rekurze GlyphXmlItem Značka GlyphJSharpProject DocumentCollection GlyphJSharpDocument Dokument GlyphForwardType GoToNext GlyphCallersGraph CallTo GlyphCallGraph CallFrom GlyphWarning StatusWarning GlyphMaybeReference Otazník GlyphMaybeCaller CallTo GlyphMaybeCall CallFrom GlyphExtensionMethod ExtensionMethod GlyphExtensionMethodInternal ExtensionMethod GlyphExtensionMethodFriend ExtensionMethod GlyphExtensionMethodProtected ExtensionMethod GlyphExtensionMethodPrivate ExtensionMethod GlyphExtensionMethodShortcut ExtensionMethod GlyphXmlAttribute XmlAttribute GlyphXmlChild XmlElement GlyphXmlDescendant XmlDescendant GlyphXmlNamespace XmlNamespace GlyphXmlAttributeQuestion XmlAttributeLowConfidence GlyphXmlAttributeCheck XmlAttributeHighConfidence GlyphXmlChildQuestion XmlElementLowConfidence GlyphXmlChildCheck XmlElementHighConfidence GlyphXmlDescendantQuestion XmlDescendantLowConfidence GlyphXmlDescendantCheck XmlDescendantHighConfidence GlyphCompletionWarning IntellisenseWarning