Vytváření souborů .vsct
Tento dokument ukazuje, jak vytvořit soubor .vsct pro přidání položek nabídek, panelů nástrojů a dalších prvků uživatelského rozhraní (UI) do integrovaného vývojového prostředí (IDE) sady Visual Studio. Tento postup použijte při přidání prvků uživatelského rozhraní do balíčku sady Visual Studio (VSPackage), který ještě nemá soubor .vsct .
U nových projektů doporučujeme použít šablonu balíčku sady Visual Studio, protože vygeneruje soubor .vsct , který už v závislosti na výběru obsahuje požadované prvky pro příkaz nabídky, okno nástroje nebo vlastní editor. Tento soubor .vsct můžete upravit tak, aby splňoval požadavky balíčku VSPackage. Další informace o úpravě souboru .vsct naleznete v příkladech v rozšíření nabídek a příkazů.
Vytvoření souboru
Vytvořte soubor .vsct v těchto fázích: Vytvořte strukturu pro soubory a prostředky, deklarujte prvky uživatelského rozhraní, vložte prvky uživatelského rozhraní do integrovaného vývojového prostředí a přidejte jakékoli specializované chování.
Struktura souborů
Základní struktura souboru .vsct je kořenový prvek CommandTable , který obsahuje Element Commands a Symbols element.
Vytvoření struktury souborů
Do projektu přidejte soubor .vsct pomocí postupu v tématu Postupy: Vytvoření souboru .vsct.
Přidejte požadované obory názvů do elementu
CommandTable
, jak je znázorněno v následujícím příkladu:<CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" xmlns:xs="http://www.w3.org/2001/XMLSchema">
Do elementu
CommandTable
Commands
přidejte prvek pro hostování všech vlastních nabídek, panelů nástrojů, skupin příkazů a příkazů. Aby bylo možné načíst vlastní prvky uživatelského rozhraní,Commands
musí mít element jehoPackage
atribut nastavený na název balíčku.Commands
Za element přidejteSymbols
prvek, který definuje identifikátory GUID balíčku a názvy a ID příkazů pro prvky uživatelského rozhraní.
Zahrnutí prostředků sady Visual Studio
Pomocí prvku Extern přejděte k souborům, které definují příkazy sady Visual Studio, a nabídky, které jsou potřeba k vložení prvků uživatelského rozhraní do integrovaného vývojového prostředí. Pokud použijete příkazy definované mimo váš balíček, použijte element UsedCommands k informování sady Visual Studio.
Zahrnutí prostředků sady Visual Studio
V horní části elementu
CommandTable
přidejte jedenExtern
prvek pro každý externí soubor, na který se má odkazovat, a nastavtehref
atribut na název souboru. Pro přístup k prostředkům sady Visual Studio můžete odkazovat na následující soubory hlaviček:Stdidcmd.h: Definuje ID pro všechny příkazy vystavené sadou Visual Studio.
Vsshlids.h: Obsahuje ID příkazů pro nabídky sady Visual Studio.
Pokud balíček volá všechny příkazy definované sadou Visual Studio nebo jinými balíčky, přidejte
UsedCommands
prvek zaCommands
element. Tento prvek naplňte elementem UsedCommand pro každý příkaz, který voláte, který není součástí balíčku.guid
Nastavte atributyid
elementůUsedCommand
na hodnoty GUID a ID příkazů, které se mají volat.Další informace o tom, jak najít identifikátory GUID a ID příkazů sady Visual Studio, najdete v tématu IDENTIFIKÁTORy GUID a ID příkazů sady Visual Studio. Pokud chcete volat příkazy z jiných balíčků, použijte identifikátor GUID a ID příkazu, jak je definováno v souboru .vsct pro tyto balíčky.
Deklarace prvků uživatelského rozhraní
Deklarujte všechny nové prvky uživatelského rozhraní v Symbols
části souboru .vsct .
Deklarace prvků uživatelského rozhraní
Do elementu
Symbols
přidejte tři guidSymbol elementy. KaždýGuidSymbol
prvek máname
atribut avalue
atribut.name
Nastavte atribut tak, aby odrážel účel prvku. Atributvalue
přebírá identifikátor GUID. (Pokud chcete vygenerovat identifikátor GUID, na kartě Tools menu, select Create GUID, and then select Registry Format.)První
GuidSymbol
prvek představuje váš balíček a obvykle nemá žádné podřízené položky. DruhýGuidSymbol
prvek představuje sadu příkazů a bude obsahovat všechny symboly, které definují vaše nabídky, skupiny a příkazy. TřetíGuidSymbol
prvek představuje úložiště obrázků a obsahuje symboly pro všechny ikony pro vaše příkazy. Pokud nemáte žádné příkazy, které používají ikony, můžete vynechat třetíGuidSymbol
prvek.Do elementu
GuidSymbol
, který představuje vaši sadu příkazů, přidejte jeden nebo více elementů IDSymbol . Každá z těchto možností představuje nabídku, panel nástrojů, skupinu nebo příkaz, které přidáváte do uživatelského rozhraní.Pro každý
IDSymbol
prvek nastavtename
atribut na název, který použijete k odkazování na odpovídající nabídku, skupinu nebo příkaz, a potom nastavtevalue
prvek na šestnáctkové číslo, které bude představovat jeho ID příkazu. Žádné dvaIDSymbol
prvky, které mají stejný nadřazený prvek, mohou mít stejnou hodnotu.Pokud některý z prvků uživatelského rozhraní vyžaduje ikony, přidejte prvek
IDSymbol
pro každou ikonu do elementuGuidSymbol
, který představuje vaše úložiště obrázků.
Vložení prvků uživatelského rozhraní do integrovaného vývojového prostředí
Prvky Nabídky, Skupiny a Tlačítka obsahují definice pro všechny nabídky, skupiny a příkazy definované v balíčku. Tyto nabídky, skupiny a příkazy umístěte do integrovaného vývojového prostředí buď pomocí nadřazeného elementu, který je součástí definice elementu uživatelského rozhraní, nebo pomocí elementu CommandPlacement , který je definován jinde.
Každý Menu
, Group
a Button
element má guid
atribut a id
atribut. Vždy nastavte guid
atribut tak, aby odpovídal názvu elementu GuidSymbol
, který představuje vaši sadu příkazů, a nastavte id
atribut na název IDSymbol
prvku, který představuje nabídku, skupinu nebo příkaz v oddílu Symbols
.
Definování prvků uživatelského rozhraní
Pokud definujete nové nabídky, podnabídky, místní nabídky nebo panely nástrojů, přidejte do elementu
Menus
Commands
prvek. Potom pro každou nabídku, která se má vytvořit, přidejte do elementuMenus
prvek Menu.guid
Nastavte atributyid
elementuMenu
a potom nastavtetype
atribut na požadovaný typ nabídky. Atribut můžete také nastavitpriority
tak, aby nastavil relativní pozici nabídky v nadřazené skupině.Poznámka:
Atribut
priority
se nevztahuje na panely nástrojů a místní nabídky.Všechny příkazy v integrovaném vývojovém prostředí sady Visual Studio musí být hostované skupinami příkazů, což jsou přímé podřízené položky nabídek a panelů nástrojů. Pokud do integrovaného vývojového prostředí přidáváte nové nabídky nebo panely nástrojů, musí obsahovat nové skupiny příkazů. Skupiny příkazů můžete také přidat do existujících nabídek a panelů nástrojů, abyste mohli vizuálně seskupit příkazy.
Když přidáte nové skupiny příkazů, musíte nejprve vytvořit
Groups
prvek a pak do něj přidat element Group pro každou skupinu příkazů.guid
Nastavte atributyid
jednotlivýchGroup
prvků a potom nastavtepriority
atribut tak, aby nastavil relativní pozici skupiny v nadřazené nabídce. Další informace najdete v tématu Vytváření opakovaně použitelných skupin tlačítek.Pokud do integrovaného vývojového prostředí přidáváte nové příkazy, přidejte
Buttons
do elementuCommands
element. Potom pro každý příkaz přidejte do elementuButtons
prvek Button.guid
Nastavte atributyid
jednotlivýchButton
prvků a potom nastavtetype
atribut na požadovaný typ tlačítka. Atribut můžete také nastavitpriority
tak, aby nastavil relativní pozici příkazu v nadřazené skupině.Poznámka:
Slouží
type="button"
pro standardní příkazy a tlačítka nabídek na panelech nástrojů.Do elementu
Button
přidejte element Strings , který obsahuje ButtonText element a CommandName element. PrvekButtonText
poskytuje textový popisek pro položku nabídky nebo popis tlačítka panelu nástrojů. ElementCommandName
poskytuje název příkazu, který se má použít v zásobníku příkazu.Pokud má příkaz ikonu, vytvořte v elementu prvek Icon a nastavte jeho
guid
aid
atributy naBitmap
prvekButton
ikony.Poznámka:
Tlačítka panelu nástrojů musí obsahovat ikony.
Další informace naleznete v tématu MenuCommands vs. OleMenuCommands.
Pokud některý z příkazů vyžaduje ikony, přidejte do elementu
Commands
prvek Bitmaps. Potom pro každou ikonu přidejte do elementuBitmaps
prvek Bitmap. Tady zadáte umístění rastrového zdroje. Další informace naleznete v tématu Přidání ikon do příkazů nabídky.Na správné umístění většiny nabídek, skupin a příkazů se můžete spolehnout na strukturu nadřazených objektů. Pro velmi velké sady příkazů nebo když se nabídka, skupina nebo příkaz musí objevit na více místech, doporučujeme zadat umístění příkazu.
Pokud chcete spoléhat na nadřazené prvky uživatelského rozhraní v integrovaném vývojovém prostředí
Pro typické nadřazení vytvořte
Parent
prvek v každémMenu
Group
, aCommand
element, který je definován v balíčku.Cílem elementu
Parent
je nabídka nebo skupina, které budou obsahovat nabídku, skupinu nebo příkaz.guid
Nastavte atribut na název elementuGuidSymbol
, který definuje sadu příkazů. Pokud cílový prvek není součástí balíčku, použijte identifikátor GUID pro tuto sadu příkazů definovaný v odpovídajícím souboru .vsct .id
Nastavte atribut tak, aby odpovídalid
atributu cílové nabídky nebo skupiny. Seznam nabídek a skupin vystavených sadou Visual Studio najdete v tématu IDENTIFIKÁTORy GUID a ID nabídek sady Visual Studio nebo identifikátorů GUID a ID panelů nástrojů sady Visual Studio.
Pokud máte velký počet prvků uživatelského rozhraní, které se mají umístit do integrovaného vývojového prostředí nebo pokud máte prvky, které by se měly objevit na více místech, definujte jejich umístění do elementu CommandPlacements , jak je znázorněno v následujících krocích.
Použití umístění příkazů k umístění prvků uživatelského rozhraní do integrovaného vývojového prostředí
Za element
Commands
přidejte elementCommandPlacements
.Do elementu
CommandPlacements
CommandPlacement
přidejte prvek pro každou nabídku, skupinu nebo příkaz, který se má umístit.Každý
CommandPlacement
prvek neboParent
prvek umístí jednu nabídku, skupinu nebo příkaz do jednoho umístění integrovaného vývojového prostředí. Prvek uživatelského rozhraní může mít pouze jeden nadřazený prvek, ale může mít více umístění příkazů. Pokud chcete prvek uživatelského rozhraní umístit do více umístění, přidejteCommandPlacement
prvek pro každé umístění.guid
Nastavte atributyid
jednotlivýchCommandPlacement
prvků na nabídku nebo skupinu hostování stejně jako proParent
prvek. Můžete také nastavitpriority
atribut pro navázání relativní pozice prvku uživatelského rozhraní.Umístění můžete kombinovat nadřazeným umístěním a umístěním příkazů. U velmi velkých sad příkazů však doporučujeme použít pouze umístění příkazů.
Přidání specializovaných chování
Pomocí elementu CommandFlag můžete změnit chování nabídek a příkazů, například změnit jejich vzhled a viditelnost. Můžete také ovlivnit, když je příkaz viditelný pomocí elementu VisibilityConstraints nebo přidat klávesové zkratky pomocí keyBindings elementu. Některé druhy nabídek a příkazů už mají předdefinované specializované chování.
Přidání specializovaných chování
Pokud chcete prvek uživatelského rozhraní zobrazit pouze v určitých kontextech uživatelského rozhraní, například při načtení řešení, použijte omezení viditelnosti.
Za element
Commands
přidejte elementVisibilityConstraints
.Pro každou položku uživatelského rozhraní k omezení přidejte element VisibilityItem .
Pro každý
VisibilityItem
prvek nastavteguid
aid
atributy na nabídku, skupinu nebo příkaz a pak nastavtecontext
atribut na požadovaný kontext uživatelského rozhraní, jak je definováno ve UIContextGuids80 třídě.
Pokud chcete nastavit viditelnost nebo dostupnost položky uživatelského rozhraní v kódu, použijte jeden nebo více z následujících příznaků příkazu:
DefaultDisabled
DefaultInvisible
DynamicItemStart
DynamicVisibility
NoShowOnMenuController
NotInTBList
Další informace naleznete v CommandFlag elementu.
Pokud chcete změnit způsob zobrazení prvku nebo dynamicky změnit jeho vzhled, použijte jeden nebo více z následujících příznaků příkazu:
AlwaysCreate
CommandWellOnly
DefaultDocked
DontCache
DynamicItemStart
FixMenuController
IconAndText
Pict
StretchHorizontally
TextMenuUseButton
TextChanges
TextOnly
Další informace naleznete v CommandFlag elementu.
Pokud chcete změnit způsob reakce elementu při příjmu příkazů, použijte jeden nebo více z následujících příznaků příkazu:
AllowParams
CaseSensitive
CommandWellOnly
FilterKeys
NoAutoComplete
NoButtonCustomize
NoKeyCustomize
NoToolbarClose
PostExec
RouteToDocs
TextIsAnchorCommand
Další informace naleznete v CommandFlag elementu.
Pokud chcete k nabídce nebo položce v nabídce připojit klávesovou zkratku závislá na nabídce, přidejte do
ButtonText
prvku pro nabídku nebo položku nabídky znak ampersand (&). Znak, který následuje za ampersandem, je aktivní klávesová zkratka při otevření nadřazené nabídky.Pokud chcete k příkazu připojit klávesovou zkratku nezávislou na nabídce, použijte element KeyBindings . Další informace najdete v elementu KeyBinding .
Chcete-li lokalizovat text nabídky, použijte
LocCanonicalName
element. Další informace naleznete v elementu Strings .Některé typy nabídek a tlačítek zahrnují specializované chování. Následující seznam popisuje některé specializované typy nabídek a tlačítek. Další typy najdete
types
v popisech atributů v elementech Menu, Button a Combo .Pole se seznamem: Pole se seznamem je rozevírací seznam, který lze použít na panelu nástrojů. Pokud chcete do uživatelského rozhraní přidat pole se seznamem, vytvořte v elementu
Commands
prvek Combos. Potom přidejte do elementuCombos
Combo
prvek pro každé pole se seznamem, které chcete přidat.Combo
elementy mají stejné atributy a podřízené položky jakoButton
prvky a také majíDefaultWidth
aidCommandList
atributy. AtributDefaultWidth
nastaví šířku v pixelech aidCommandList
atribut odkazuje na ID příkazu, které se používá k naplnění pole se seznamem.Ovladač nabídky: Ovladač nabídky je tlačítko se šipkou vedle něj. Kliknutím na šipku otevřete seznam. Chcete-li přidat řadič nabídky do uživatelského rozhraní, vytvořte
Menu
prvek a nastavte jehotype
atribut naMenuController
neboMenuControllerLatched
v závislosti na požadovaném chování. Chcete-li naplnit kontroler nabídky, nastavte ho jako nadřazenýGroup
prvek. Kontroler nabídek zobrazí všechny podřízené položky této skupiny v rozevíracím seznamu.