Partager via


créer. fichiers de Vsct

Ce document montre comment créer un fichier de .vsct pour ajouter des éléments de menu, les barres d'outils, et d'autres éléments d'interface (UI) utilisateur à l'environnement de développement intégré Visual (IDE) Studio. Utilisez ces étapes lorsque vous ajoutez des éléments d'interface utilisateur à un package Visual Studio (VSPackage) qui ne possède pas de fichier de .vsct.

Pour les nouveaux projets, nous vous recommandons d'utiliser le modèle de package Visual Studio car il génère un fichier de .vsct qui, selon vos sélections, possède déjà les éléments requis pour une commande de menu, une fenêtre Outil, ou un éditeur personnalisé. Vous pouvez modifier ce fichier de .vsct pour répondre aux besoins de votre VSPackage. Pour plus d'informations sur la modification d'un fichier de .vsct, consultez les exemples dans Procédures pas - à - pas pour les commandes, de menus, et les barres d'outils.

créer le fichier

Créez un fichier de .vsct dans ces phases : Créez la structure pour les fichiers et les ressources, déclarez les éléments d'interface utilisateur, placez des éléments d'interface utilisateur dans l'IDE, puis ajoutez tous les comportements spéciaux.

structure de fichiers

la structure de base d'un fichier de .vsct est un élément racine de CommandTable qui contient un élément de commandes et un élément de symboles .

pour créer la structure de fichiers

  1. Ajoutez un fichier de .vsct à votre projet en suivant les étapes de Comment : Créez un. fichier de Vsct.

  2. Ajoutez les espaces de noms requis à l'élément d' CommandTable , comme indiqué dans l'exemple suivant.

    <CommandTable xmlns="https://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" 
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
  3. Dans l'élément d' CommandTable , ajoutez un élément de Commands pour héberger tous vos menus, barres d'outils, groupes de commandes, puis commandes personnalisés. Afin que vos éléments de l'interface utilisateur personnalisée puissent charger, l'élément d' Commands doit avoir son jeu d'attributs d' Package le nom du package.

    Après l'élément d' Commands , ajoutez un élément de Symbols pour définir les GUID pour le package, et les noms et les ID de commande pour vos éléments d'interface utilisateur.

Notamment les ressources de Visual Studio

Utilisez l'élément d' extern pour accéder aux fichiers qui définissent les commandes de Visual Studio et des menus qui sont requis pour que les éléments d'interface utilisateur dans l'IDE. Si vous utilisez des commandes définies à l'extérieur de votre package, utilisez l'élément d' UsedCommands pour notifier Visual Studio.

Pour inclure des ressources de Visual Studio

  1. En haut de l'élément d' CommandTable , ajoutez un élément de Extern pour chaque fichier externe soit référencé, et affectez à l'attribut d' href le nom du fichier. Vous pouvez référencer les fichiers d'en-tête suivants pour accéder aux ressources de Visual Studio :

    • Stdidcmd.h, définit des identificateurs pour toutes les commandes exposées par Visual Studio.

    • Vsshlids.h, contient les ID de commande pour les menus de Visual Studio.

    • Msobtnid.h, définir d'autres constantes de VSCT ; cela inclut des identificateurs standard d'icône.

  2. Si votre package appelle toutes les commandes définies par Visual Studio ou par d'autres packages, ajoutez un élément de UsedCommandsaprès l'élément d' Commands . Exécutez cet élément et un élément d' UsedCommand pour chaque commande que vous appelez qui ne fait pas partie de votre package. Définir les attributs d' guid et d' id des éléments d' UsedCommand à un GUID et les valeurs d'ID des commandes d'appeler. Pour plus d'informations sur la détection le GUID et les ID des commandes de Visual Studio, consultez GUID et ID des commandes de Visual Studio. Pour appeler des commandes d'autres packages, utilisez le GUID et l'ID de la commande comme défini dans le fichier de .vsct pour ceux des packages.

déclarer des éléments d'interface utilisateur

déclarez tous les nouveaux éléments d'interface utilisateur dans la section d' Symbols du fichier de .vsct.

Pour déclarer les éléments d'interface utilisateur

  1. dans l'élément d' Symbols , ajoutez trois éléments de GuidSymbol . chaque élément d' GuidSymbol a un attribut d' name et un attribut d' value . Définissez l'attribut d' name afin qu'il indique l'objectif de l'élément. L'attribut d' value prend un GUID. (Pour générer un GUID, dans le menu d' Outils , cliquez sur Create GUID, puis sélectionnez format de Registre.)

    Le premier élément d' GuidSymbol représente votre package, et n'a généralement pas d'enfant. Le deuxième élément d' GuidSymbol représente le jeu de commandes, puis contiendra toutes les symboles qui définissent vos menus, groupes, et commandes. Le troisième élément d' GuidSymbol représente votre magasin d'image et contient les symboles pour les icônes pour vos commandes. si vous n'avez aucune commande qui utilisent des icônes, vous pouvez omettre le troisième élément d' GuidSymbol .

  2. dans l'élément d' GuidSymbol qui représente votre jeu de commandes, ajoutez un ou plusieurs éléments d' IDSymbol . Chacune de ces représente un menu, une barre d'outils, un groupe, ou une commande que vous ajoutez à l'interface utilisateur.

    Pour chaque élément d' IDSymbol , affectez à l'attribut d' name au nom que vous utiliserez pour faire référence au menu correspondant, dans le groupe, ou à la commande, puis affectez à l'élément d' value à un nombre hexadécimal qui représente son ID de commande aucun deux éléments d' IDSymbol qui ont le même parent ne peuvent avoir la même valeur.

  3. Si l'une de vos éléments d'interface utilisateur nécessitent des icônes, ajoutez un élément de IDSymbol pour chaque icône à l'élément d' GuidSymbol qui représente votre magasin d'image.

Placer les éléments d'interface utilisateur dans l'IDE

L'élément de menus , l'élément de groupes , et l'élément de boutons contiennent les définitions de tous les menus, groupes, et commandes définies dans votre package. Placez ces menus, groupes, et commandes de l'IDE l'un ou l'autre à l'aide d'un élément de parent , qui fait partie de la définition de l'élément d'interface, ou à l'aide d'un élément de CommandPlacement défini ailleurs.

chaque Menu, Group, et l'élément d' Button a un attribut d' guid et un attribut d' id . Définissez toujours l'attribut d' guid pour correspondre au nom de l'élément d' GuidSymbol qui représente votre jeu de commandes, puis affectez à l'attribut d' id au nom de l'élément d' IDSymbol qui représente votre menu, groupe, ou commande dans la section d' Symbols .

pour définir des éléments d'interface utilisateur

  1. Si vous définissez des nouveaux menus, sous-menus, menus contextuels, ni barres d'outils, ajoutez un élément de Menus à l'élément d' Commands . Puis, pour chaque menu créé, ajoutez un élément de menu à l'élément d' Menus .

    Définir les attributs d' guid et d' id de l'élément d' Menu, puis affectez à l'attribut d' type au genre de menu que vous souhaitez. Vous pouvez également définir l'attribut d' priority pour générer la position relative du menu au groupe parent. Pour plus d'informations, consultez Comment : Créer des menus, des sous-menus, et les menus contextuels et Comment : Créez les barres d'outils dans l'IDE.

    Notes

    L'attribut d'priority ne s'applique pas aux barres d'outils et des menus contextuels.

  2. Toutes les commandes de l'IDE de Visual Studio doivent être hébergées par les groupes de commandes, qui sont des enfants directs les menus et les barres d'outils. Si vous ajoutez de nouveaux menus ou barres d'outils à l'IDE, ils doivent contenir les nouveaux groupes de commandes. Vous pouvez également ajouter des groupes de commandes aux menus existants et des barres d'outils afin que vous puissiez visuellement regrouper vos commandes.

    Lorsque vous ajoutez de nouveaux groupes de commandes, vous devez d'abord créer un élément d' Groups , puis lui ajoutez un élément de groupe pour chaque groupe de commandes.

    Définir les attributs d' guid et d' id de chaque élément d' Group, puis affectez à l'attribut d' priority pour générer la position relative du groupe dans le menu parent. Pour plus d'informations, consultez Comment : Créer des groupes personnalisés de boutons.

  3. Si vous ajoutez de nouvelles commandes à l'IDE, ajoutez un élément de Buttons à l'élément d' Commands . puis, pour chaque commande, ajoutez un élément de bouton à l'élément d' Buttons .

    1. Définir les attributs d' guid et d' id de chaque élément d' Button, puis affectez à l'attribut d' type au genre de bouton que vous souhaitez. Vous pouvez également définir l'attribut d' priority pour générer la position relative de la commande au groupe parent.

      Notes

      Utilisez type="button" pour les commandes du menu standard et les boutons des barres d'outils.

    2. dans l'élément d' Button, ajoutez un élément de chaînes qui contient un élément de ButtonText et un élément de CommandName . L'élément d' ButtonText fournit l'étiquette de texte pour un élément de menu, ou l'info-bulle d'un bouton de barre d'outils. L'élément d' CommandName fournit le nom de la commande à utiliser dans l'ordre correct.

    3. Si votre commande prend une icône, créez un élément d' icône dans l'élément d' Button, et définissez ses attributs d' guid et d' id à l'élément d' Bitmap pour l'icône.

      Notes

      les boutons de barre d'outils doivent avoir des icônes.

    Pour plus d'informations, consultez Comment : Créer et gérer des commandes dans les VSPackages (c#).

  4. Si l'une de vos commandes requièrent des icônes, ajoutez un élément de bitmap à l'élément d' Commands . puis, pour chaque icône, ajoutez un élément de bitmap à l'élément d' Bitmaps . Elle vous spécifiez l'emplacement de la ressource bitmap. Pour plus d'informations, consultez Comment : Ajoutez les icônes aux commandes des barres d'outils.

Vous pouvez utiliser la structure de parentage pour placer correctement la plupart des menus, groupes, et commandes. Pour les jeux de commandes très grands, ou lorsqu'un menu, d'un groupe, ou une commande doivent apparaître dans plusieurs emplacements, nous vous conseillons de spécifier le positionnement de commande.

Pour compter sur le parentage pour placer des éléments d'interface utilisateur dans l'IDE

  • Pour le parentage classique, créez un élément d' Parent dans chaque Menu, Group, et l'élément d' Command défini dans votre package.

    La cible de l'élément d' Parent est le menu ou le groupe qui contiendra le menu, le groupe, ou la commande.

    1. définissez l'attribut d' guid au nom de l'élément d' GuidSymbol qui définit le jeu de commandes. Si l'élément cible ne fait pas partie de votre package, utilisez le GUID pour ce jeu de commandes, comme défini dans le fichier correspondant de .vsct.

    2. définissez l'attribut d' id pour correspondre à l'attribut d' id du menu ou du groupe cible. Pour une liste des menus et des groupes qui sont exposées par Visual Studio, consultez GUID et identificateurs des menus de Visual Studio ou le GUID et identificateurs des barres d'outils de Visual Studio.

Si vous avez un grand nombre d'éléments d'interface utilisateur à placer dans l'IDE, ou si vous avez des éléments qui doivent apparaître dans plusieurs emplacements, définissez leurs positionnements dans l'élément de CommandPlacements , comme indiqué dans les étapes suivantes.

Pour utiliser les positions de commande pour placer des éléments d'interface utilisateur dans l'IDE

  1. Après l'élément d' Commands , ajoutez un élément de CommandPlacements .

  2. Dans l'élément d' CommandPlacements , ajoutez un élément de CommandPlacement pour chaque menu, groupe, ou commande place.

    Chaque élément d' CommandPlacement ou élément d' Parentplace une menu, groupe, ou commande dans un emplacement de l'IDE. Un élément d'interface ne peut avoir qu'un seul parent, mais il peut avoir plusieurs positionnements de commande. Pour placer un élément d'interface dans plusieurs emplacements, ajoutez un élément de CommandPlacement pour chaque emplacement.

  3. Définir les attributs d' guid et d' id de chaque élément d' CommandPlacement au menu et au groupe d'hébergement, comme vous le feriez pour un élément d' Parent . Vous pouvez également définir l'attribut d' priority pour générer la position relative de l'élément d'interface utilisateur.

Vous pouvez combiner le positionnement par positionnement de parentage et de commande. Toutefois, pour les jeux de commandes très volumineux, il est recommandé d'utiliser uniquement le positionnement de commande.

ajouter des comportements spécialisés

Vous pouvez utiliser des éléments de CommandFlag pour modifier le comportement des menus et des commandes, par exemple, de modifier leur apparence et leur visibilité. Vous pouvez également affecter lorsqu'une commande est visible à l'aide de VisibilityConstraints, ou ajouter des raccourcis clavier à l'aide de Combinaisons de touches. certains genres de menus et de commandes ont déjà spécialisé des comportements incorporés.

pour ajouter des comportements spécialisés

  1. Pour rendre un élément d'interface visible uniquement dans certains contextes d'interface utilisateur, par exemple, si une solution est chargée, utilisez les contraintes de visibilité.

    1. Après l'élément d' Commands , ajoutez un élément de VisibilityConstraints .

    2. Pour chaque élément de l'interface utilisateur contraigne, ajoutez un élément de VisibilityItem .

    3. Pour chaque élément d' VisibilityItem , définissez les attributs d' guid et d' id au menu, dans le groupe, ou à la commande, puis affectez à l'attribut d' context au contexte d'interface utilisateur que vous souhaitez, comme défini dans la classe d' UIContextGuids80 . Pour plus d'informations, consultez Élément VisibilityItem.

  2. Pour définir la visibilité ou la disponibilité d'un élément d'interface utilisateur dans le code, utilisez un ou plusieurs des indicateurs de commande suivante :

    • DefaultDisabled

    • DefaultInvisible

    • DynamicItemStart

    • DynamicVisibility

    • NoShowOnMenuController

    • NotInTBList

    Pour plus d'informations, consultez CommandFlag, élément.

  3. Pour modifier la façon dont un élément apparaît, ou modifier son apparence dynamiquement, utilisez un ou plusieurs des indicateurs de commande suivante :

    • AlwaysCreate

    • CommandWellOnly

    • DefaultDocked

    • DontCache

    • DynamicItemStart

    • FixMenuController

    • IconAndText

    • Pict

    • StretchHorizontally

    • TextMenuUseButton

    • TextChanges

    • TextOnly

    Pour plus d'informations, consultez CommandFlag, élément.

  4. Pour modifier la façon dont un élément réagit lorsqu'il reçoit des commandes, utilisez un ou plusieurs des indicateurs de commande suivante :

    • AllowParams

    • CaseSensitive

    • CommandWellOnly

    • touches filtres

    • NoAutoComplete

    • NoButtonCustomize

    • NoKeyCustomize

    • NoToolbarClose

    • PostExec

    • RouteToDocs

    • TextIsAnchorCommand

    Pour plus d'informations, consultez CommandFlag, élément.

  5. Pour joindre un raccourci clavier de menu-dépendant à un menu ou un élément de menu, ajoutez un caractère de perluète ('&') dans l'élément d' ButtonText pour le menu ou l'élément de menu. Le caractère qui suit le perluète est le raccourci clavier actif lorsque le menu parent est ouvert.

  6. Pour joindre un raccourci clavier menu-indépendant à une commande, utilisez Combinaisons de touches. Pour plus d'informations, consultez KeyBinding, élément.

  7. Pour localiser le texte de menu, utilisez l'élément d' LocCanonicalName . Pour plus d'informations, consultez Strings, élément.

Certains types de menu et de bouton incluent des comportements spéciaux. Le tableau suivant décrit certains types spécifiques de menu et de bouton. Pour d'autres types, consultez les descriptions d'attribut d' types dans Menu, élément, Button, élément, et Combo, élément.

  • Combo Box
    Une zone de liste déroulante est une liste déroulante pouvant être utilisée sur une barre d'outils. pour ajouter des zones de liste déroulante à l'interface utilisateur, créez un élément de combos dans l'élément d' Commands . Ajoutez ensuite à l'élément d' Combos un élément d' Combo pour chaque zone de liste déroulante ajoute. les éléments d'Combo ont les mêmes attributs et enfants que les éléments d' Button et ont également DefaultWidth et d' idCommandList . L'attribut d' DefaultWidth la largeur en pixels, et l'attribut d' idCommandList indique un ID de commande qui est utilisé pour remplir une zone de liste déroulante. Pour plus d'informations, consultez la documentation d'élément d' Combo .

  • MenuController
    Un contrôleur de menu est un bouton possédant une flèche en regard de celle-ci. Cliquez sur la flèche ouvre une liste. Pour ajouter un contrôleur de menu à l'interface utilisateur, créez un élément d' Menu et affectez à son attribut d' type à MenuController ou à MenuControllerLatched, selon le comportement souhaité. Pour remplir le contrôleur de menu, définissez -le comme parent d'un élément d' Group . Le contrôleur de menu affiche tous les enfants de ce groupe dans sa liste déroulante.

Voir aussi

Concepts

Référence du schéma XML VSCT

Autres ressources

Tâches courantes avec des commandes, des menus, et les barres d'outils

Tableau de commande Visual Studio (. fichiers de Vsct)