Sdílet prostřednictvím


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ů

  1. Do projektu přidejte soubor .vsct pomocí postupu v tématu Postupy: Vytvoření souboru .vsct.

  2. 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">
    
    
  3. 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 jeho Package atribut nastavený na název balíčku.

    Commands Za element přidejte Symbols 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

  1. V horní části elementu CommandTable přidejte jeden Extern prvek pro každý externí soubor, na který se má odkazovat, a nastavte href 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.

  2. Pokud balíček volá všechny příkazy definované sadou Visual Studio nebo jinými balíčky, přidejte UsedCommands prvek za Commands element. Tento prvek naplňte elementem UsedCommand pro každý příkaz, který voláte, který není součástí balíčku. guid Nastavte atributy id 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í

  1. Do elementu Symbols přidejte tři guidSymbol elementy. Každý GuidSymbol prvek má name atribut a value atribut. name Nastavte atribut tak, aby odrážel účel prvku. Atribut value 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.

  2. 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 nastavte name atribut na název, který použijete k odkazování na odpovídající nabídku, skupinu nebo příkaz, a potom nastavte value prvek na šestnáctkové číslo, které bude představovat jeho ID příkazu. Žádné dva IDSymbol prvky, které mají stejný nadřazený prvek, mohou mít stejnou hodnotu.

  3. Pokud některý z prvků uživatelského rozhraní vyžaduje ikony, přidejte prvek IDSymbol pro každou ikonu do elementu GuidSymbol , 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, Groupa 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í

  1. 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 elementu Menus prvek Menu.

    guid Nastavte atributy id elementu Menu a potom nastavte type atribut na požadovaný typ nabídky. Atribut můžete také nastavit priority 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.

  2. 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 atributy id jednotlivých Group prvků a potom nastavte priority 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.

  3. Pokud do integrovaného vývojového prostředí přidáváte nové příkazy, přidejte Buttons do elementu Commands element. Potom pro každý příkaz přidejte do elementu Buttons prvek Button.

    1. guid Nastavte atributy id jednotlivých Button prvků a potom nastavte type atribut na požadovaný typ tlačítka. Atribut můžete také nastavit priority 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ů.

    2. Do elementu Button přidejte element Strings , který obsahuje ButtonText element a CommandName element. Prvek ButtonText poskytuje textový popisek pro položku nabídky nebo popis tlačítka panelu nástrojů. Element CommandName poskytuje název příkazu, který se má použít v zásobníku příkazu.

    3. Pokud má příkaz ikonu, vytvořte v elementu prvek Icon a nastavte jeho guid a id atributy na Bitmap prvek Button ikony.

      Poznámka:

      Tlačítka panelu nástrojů musí obsahovat ikony.

    Další informace naleznete v tématu MenuCommands vs. OleMenuCommands.

  4. Pokud některý z příkazů vyžaduje ikony, přidejte do elementu Commands prvek Bitmaps. Potom pro každou ikonu přidejte do elementu Bitmaps 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í

  1. Pro typické nadřazení vytvořte Parent prvek v každém MenuGroup, a Command 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.

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

    2. id Nastavte atribut tak, aby odpovídal id 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í

  1. Za element Commands přidejte element CommandPlacements.

  2. 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 nebo Parent 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řidejte CommandPlacement prvek pro každé umístění.

  3. guid Nastavte atributy id jednotlivých CommandPlacement prvků na nabídku nebo skupinu hostování stejně jako pro Parent prvek. Můžete také nastavit priority 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í

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

    1. Za element Commands přidejte element VisibilityConstraints.

    2. Pro každou položku uživatelského rozhraní k omezení přidejte element VisibilityItem .

    3. Pro každý VisibilityItem prvek nastavte guid a id atributy na nabídku, skupinu nebo příkaz a pak nastavte context atribut na požadovaný kontext uživatelského rozhraní, jak je definováno ve UIContextGuids80 třídě.

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

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

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

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

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

  7. 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 elementu Combos Combo prvek pro každé pole se seznamem, které chcete přidat. Combo elementy mají stejné atributy a podřízené položky jako Button prvky a také mají DefaultWidth a idCommandList atributy. Atribut DefaultWidth nastaví šířku v pixelech a idCommandList 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 jeho type atribut na MenuController nebo MenuControllerLatchedv 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.