Comment les VSPackages ajouter les éléments d’Interface utilisateurHow VSPackages Add User Interface Elements

Un VSPackage peut ajouter des éléments d’interface (interface utilisateur) utilisateur, par exemple, les menus, barres d’outils et fenêtres dans Visual Studio au moyen du fichier .vsct.A VSPackage can add user interface (UI) elements, for example, menus, toolbars, and tool windows, to Visual Studio by means of the .vsct file.

Vous trouverez des instructions de conception pour les éléments d’interface utilisateur à recommandations expérience utilisateur de Visual Studio.You can find design guidelines for UI elements at Visual Studio User Experience Guidelines.

L’Architecture de Table de commandes de Visual StudioThe Visual Studio Command Table Architecture

Comme indiqué, l’Architecture de la Table de commande prend en charge les principes d’architecture qui précèdent.As noted, the Command Table Architecture supports the foregoing architectural principles. Les principes derrière les abstractions, des structures de données et des outils de l’Architecture de la Table de commande sont les suivantes :The tenets behind the abstractions, data structures, and tools of the Command Table Architecture are as follows:

  • Il existe trois types de base d’éléments : menus, les commandes et les groupes.There are three basic kinds of items: menus, commands, and groups. Les menus peuvent être exposés dans l’interface utilisateur comme les menus, sous-menus, barres d’outils ou les fenêtres Outil.Menus can be exposed in the UI as menus, submenus, toolbars, or tool windows. Les commandes sont des procédures qui l’utilisateur peut exécuter dans l’IDE, et ils peuvent être exposés en tant qu’éléments de menu, des boutons, des zones de liste ou d’autres contrôles.Commands are procedures that the user can execute in the IDE, and they can be exposed as menu items, buttons, list boxes, or other controls. Les groupes sont des conteneurs pour les menus et commandes.Groups are containers for both menus and commands.

  • Chaque élément est spécifié par une définition qui décrit l’élément, sa priorité par rapport aux autres éléments et les indicateurs qui modifient son comportement.Each item is specified by a definition that describes the item, its priority relative to other items, and the flags that modify its behavior.

  • Chaque élément possède un placement qui décrit le parent de l’élément.Each item has a placement that describes the parent of the item. Un élément peut avoir plusieurs parents, afin qu’elle peut apparaître dans plusieurs emplacements dans l’interface utilisateur.An item can have multiple parents, so that it can appear in multiple locations in the UI.

    Chaque commande doit avoir un groupe en tant que son parent, même si c’est le seul enfant de ce groupe.Every command must have a group as its parent, even if it is the only child in that group. Chaque menu standard doit également disposer d’un groupe parent.Every standard menu must also have a parent group. Barres d’outils et fenêtres Outil agissent en tant que leurs parents.Toolbars and tool windows act as their own parents. Un groupe peut avoir comme son parent de la barre de menus Visual Studio principale, ou n’importe quel menu, barre d’outils ou de fenêtre outil.A group can have as its parent the main Visual Studio menu bar, or any menu, toolbar, or tool window.

Comment les éléments sont définisHow Items Are Defined

. Fichiers VSCT sont au format XML..Vsct files are formatted in XML. Un fichier .vsct définit les éléments d’interface utilisateur pour un package et détermine où ces éléments s’affichent dans l’IDE.A .vsct file defines the UI elements for a package and determines where those elements appear in the IDE. Chaque menu, groupe ou une commande dans le package est affecté un GUID et l’ID dans la Symbols section.Every menu, group, or command in the package is first assigned a GUID and ID in the Symbols section. Dans le reste de le .vsct fichier, chaque menu, commande et groupe sont identifié par sa combinaison GUID et ID.Throughout the rest of the .vsct file, each menu, command, and group is identified by its GUID and ID combination. L’exemple suivant montre une manière classique Symbols section tel que généré par le modèle de Package Visual Studio lorsqu’un commande de Menu est sélectionné dans le modèle.The following example shows a typical Symbols section as generated by the Visual Studio Package Template when a Menu Command is selected in the template.

<Symbols>  
  <!-- This is the package guid. -->  
  <GuidSymbol name="guidMenuTextPkg" value="{b1253bc6-d266-402b-89e7-5e3d3b22c746}" />  

  <!-- This is the guid used to group the menu commands together -->  
  <GuidSymbol name="guidMenuTextCmdSet" value="{a633d4e4-6c65-4436-a138-1abeba7c9a69}">  

    <IDSymbol name="MyMenuGroup" value="0x1020" />  
    <IDSymbol name="cmdidMyCommand" value="0x0100" />  
  </GuidSymbol>  

  <GuidSymbol name="guidImages" value="{53323d9a-972d-4671-bb5b-9e418480922f}" >  
    <IDSymbol name="bmpPic1" value="1" />  
    <IDSymbol name="bmpPic2" value="2" />  
    <IDSymbol name="bmpPicSearch" value="3" />  
    <IDSymbol name="bmpPicX" value="4" />  
    <IDSymbol name="bmpPicArrows" value="5" />  
  </GuidSymbol>  
</Symbols>  

L’élément de niveau supérieur de la Symbols section est la GuidSymbol élément.The top-level element of the Symbols section is the GuidSymbol Element. GuidSymbol éléments de mappent des noms pour les GUID utilisés par l’IDE pour identifier les packages et leurs composants.GuidSymbol elements map names to GUIDs that are used by the IDE to identify packages and their component parts.

Note

GUID sont générés automatiquement par le modèle de Package Visual Studio.GUIDs are generated automatically by the Visual Studio Package Template. Vous pouvez également créer un GUID unique en cliquant sur Create GUID sur la outils menu.You can also create a unique GUID by clicking Create GUID on the Tools menu.

Le premier GuidSymbol élément, « guid [PackageName] Pkg », est le GUID du package lui-même.The first GuidSymbol element, "guid[PackageName]Pkg", is the GUID of the package itself. Il s’agit du GUID est utilisé par Visual Studio pour charger le package.This is the GUID that is used by Visual Studio to load the package. En règle générale, il n’a pas des éléments enfants.Typically, it does not have child elements.

Par convention, les menus et les commandes sont regroupées sous un deuxième GuidSymbol élément, « guid [PackageName] CmdSet », et les images bitmap sont sous une troisième GuidSymbol élément, « guidImages ».By convention, menus and commands are grouped under a second GuidSymbol element, "guid[PackageName]CmdSet", and bitmaps are under a third GuidSymbol element, "guidImages". Vous n’êtes pas obligé de suivent cette convention, mais chaque menu, un groupe, une commande et une bitmap doivent être un enfant d’un GuidSymbol élément.You do not have to follow this convention, but each menu, group, command, and bitmap must be a child of a GuidSymbol element.

Dans la seconde GuidSymbol l’élément, qui représente le jeu de commandes de package, sont plusieurs IDSymbol éléments.In the second GuidSymbol element, which represents the package command set, are several IDSymbol elements. Chaque IDSymbol élément associe un nom à une valeur numérique et peut représenter un menu, un groupe ou une commande qui fait partie du jeu de commandes.Each IDSymbol Element maps a name to a numeric value, and may represent a menu, group, or command that is part of the command set. Le IDSymbol éléments dans la troisième GuidSymbol élément représentent les images bitmap qui peuvent être utilisés comme icônes pour les commandes.The IDSymbol elements in the third GuidSymbol element represent bitmaps that may be used as icons for commands. Étant donné que les paires GUID/ID doivent être uniques dans une application, aucune deux enfants du même GuidSymbol élément peut avoir la même valeur.Because GUID/ID pairs must be unique in an application, no two children of the same GuidSymbol element may have the same value.

Lorsqu’un menu, groupe ou commande possède un GUID et l’ID, il peut être ajouté à l’IDE.When a menu, group, or command has a GUID and ID, it can be added to the IDE. Chaque élément d’interface utilisateur doit avoir les éléments suivants :Every UI element must have the following things:

  • A guid attribut qui correspond au nom de la GuidSymbol élément défini sous l’élément d’interface utilisateur.A guid attribute that matches the name of the GuidSymbol element that the UI element is defined under.

  • Un id attribut qui correspond au nom de la IDSymbol élément.An id attribute that matches the name of the associated IDSymbol element.

    Ensemble, le guid et id attributs composent le signature de l’élément d’interface utilisateur.Together, the guid and id attributes compose the signature of the UI element.

  • A priority attribut qui détermine l’emplacement de l’élément d’interface utilisateur dans son menu parent ou d’un groupe.A priority attribute that determines the placement of the UI element in its parent menu or group.

  • A élément Parent qui a guid et id attributs qui spécifient la signature du menu parent ou du groupe.A Parent Element that has guid and id attributes that specify the signature of the parent menu or group.

Chaque menu est défini comme un élément de Menu dans la Menus section.Each menu is defined as a Menu Element in the Menus section. Menus doivent avoir guid, id, et priority attributs et un Parent élément et également les attributs supplémentaires suivants et enfants :Menus must have guid, id, and priority attributes, and a Parent element, and also the following additional attributes and children:

  • A type attribut qui spécifie si le menu doit s’afficher dans l’IDE en tant qu’un type de menu ou une barre d’outils.A type attribute that specifies whether the menu should appear in the IDE as a kind of menu or as a toolbar.

  • A chaînes élément qui contient un ButtonText élément, qui spécifie le titre du menu dans l’IDE et un CommandName élément, qui spécifie le nom est utilisé dans le commande fenêtre pour accéder au menu.A Strings Element that contains a ButtonText Element, which specifies the title of the menu in the IDE, and a CommandName Element, which specifies the name that is used in the Command window to access the menu.

  • Indicateurs facultatifs.Optional flags. A élément indicateur de commande peut apparaître dans une définition de menu pour modifier son apparence ou le comportement de l’IDE.A Command Flag Element may appear in a menu definition to change its appearance or behavior in the IDE.

    Chaque Menu élément doit avoir un groupe en tant que son parent, sauf s’il est un élément ancrable comme une barre d’outils.Every Menu element must have a group as its parent, unless it is a dockable element such as a toolbar. Un menu ancrable est son propre parent.A dockable menu is its own parent. Pour plus d’informations sur les menus et les valeurs pour le type d’attribut, consultez la élément de Menu documentation.For more information about menus and values for the type attribute, see the Menu Element documentation.

    L’exemple suivant montre un menu qui s’affiche dans la barre de menus de Visual Studio, à côté du outils menu.The following example shows a menu that appears on the Visual Studio menu bar, next to the Tools menu.

<Menu guid="guidTopLevelMenuCmdSet"  
id="TopLevelMenu" priority="0x700" type="Menu">  
  <Parent guid="guidSHLMainMenu"  
          id="IDG_VS_MM_TOOLSADDINS" />  
  <Strings>  
    <ButtonText>TestMenu</ButtonText>  
    <CommandName>TestMenu</CommandName>  
  </Strings>  
</Menu>  

GroupesGroups

Un groupe est un élément qui est défini dans la Groups section du fichier .vsct.A group is an item that is defined in the Groups section of the .vsct file. Les groupes sont simplement des conteneurs.Groups are just containers. Ils n’apparaissent pas dans l’IDE, à l’exception comme une ligne de séparation dans un menu.They do not appear in the IDE except as a dividing line on a menu. Par conséquent, un élément Group est défini uniquement par son parent, la priorité et la signature.Therefore, a Group Element is defined only by its signature, priority, and parent.

Un groupe peut avoir un menu, un autre groupe ou lui-même en tant que parent.A group can have a menu, another group, or itself as parent. Toutefois, le parent est en général, un menu ou une barre d’outils.However, the parent is typically a menu or toolbar. Le menu de l’exemple précédent est un enfant de le IDG_VS_MM_TOOLSADDINS groupe et ce groupe est un enfant de la barre de menus de Visual Studio.The menu in the earlier example is a child of the IDG_VS_MM_TOOLSADDINS group, and that group is a child of the Visual Studio menu bar. Le groupe dans l’exemple suivant est un enfant du menu de l’exemple précédent.The group in the following example is a child of the menu in the earlier example.

 <Group guid="guidTopLevelMenuCmdSet" id="MyMenuGroup"  
priority="0x0600">  
   <Parent guid="guidTopLevelMenuCmdSet" id="TopLevelMenu"/>  
 </Group>  

Car il fait partie d’un menu, ce groupe contient généralement commandes.Because it is part of a menu, this group would typically contain commands. Toutefois, il peut également contenir d’autres menus.However, it could also contain other menus. Voici comment les sous-menus sont définis, comme indiqué dans l’exemple suivant.This is how submenus are defined, as shown in the following example.

<Menu guid="guidTopLevelMenuCmdSet" id="SubMenu"  
priority="0x0100" type="Menu">  
  <Parent guid="guidTopLevelMenuCmdSet" id="MyMenuGroup"/>  
  <Strings>  
    <ButtonText>Sub Menu</ButtonText>  
    <CommandName>Sub Menu</CommandName>  
  </Strings>  
</Menu>  

CommandesCommands

Une commande qui est fournie à l’interface IDE est définie comme un élément Button ou un élément de liste déroulante.A command that is provided to the IDE is defined as either a Button Element or a Combo Element. Pour être affichés dans un menu ou une barre d’outils, la commande doit avoir un groupe en tant que son parent.To appear on a menu or a toolbar, the command must have a group as its parent.

BoutonsButtons

Boutons sont définis dans la Buttons section.Buttons are defined in the Buttons section. N’importe quel élément de menu, bouton ou autre élément sur lequel un utilisateur clique pour exécuter une seule commande est considérée comme un bouton.Any menu item, button, or other element that a user clicks to execute a single command is considered a button. Certains types de boutons peuvent également inclure des fonctionnalités de liste.Some button types can also include list functionality. Boutons ont les mêmes que celles requises et les attributs facultatifs de menus, et peut également avoir un icône élément qui spécifie le GUID et l’ID de la bitmap qui représente le bouton dans l’IDE.Buttons have the same required and optional attributes that menus have, and can also have an Icon Element that specifies the GUID and ID of the bitmap that represents the button in the IDE. Pour plus d’informations sur les boutons et leurs attributs, consultez le boutons élément documentation.For more information about buttons and their attributes, see the Buttons Element documentation.

Le bouton dans l’exemple suivant est un enfant du groupe dans l’exemple précédent et s’affichent dans l’IDE en tant qu’un élément de menu dans le menu du parent de ce groupe.The button in the following example is a child of the group in the earlier example, and would appear in the IDE as a menu item on the parent menu of that group.

<Button guid="guidTopLevelMenuCmdSet" id="cmdidTestCommand" priority="0x0100" type="Button">  
  <Parent guid="guidTopLevelMenuCmdSet" id="MyMenuGroup" />  
  <Icon guid="guidImages" id="bmpPic1" />  
  <Strings>  
    <CommandName>cmdidTestCommand</CommandName>  
    <ButtonText>Test Command</ButtonText>  
  </Strings>  
</Button>  
CombinésCombos

Combinaisons sont définis dans la Combos section.Combos are defined in the Combos section. Chaque Combo élément représente une zone de liste déroulante dans l’IDE.Each Combo element represents a drop-down list box in the IDE. La zone de liste peut ou ne peut pas être accessible en écriture par des utilisateurs, selon la valeur de la type attribut de la liste déroulante.The list box may or may not be writable by users, depending on the value of the type attribute of the combo. Combinaisons ont les mêmes éléments et de comportement des boutons ont et peut avoir également les attributs supplémentaires suivants :Combos have the same elements and behavior that buttons have, and can also have the following additional attributes:

  • A defaultWidth attribut qui spécifie la largeur en pixels.A defaultWidth attribute that specifies pixel width.

  • Un idCommandList attribut qui spécifie une liste qui contient les éléments qui sont affichent dans la zone de liste.An idCommandList attribute that specifies a list that contains the items that are displayed in the list box. La liste de commandes doit être déclarée dans le même GuidSymbol nœud qui contient la liste déroulante.The command list must be declared in the same GuidSymbol node that contains the combo.

    L’exemple suivant définit un élément de liste déroulante.The following example defines a combo element.

<Combos>  
  <Combo guid="guidFirstToolWinCmdSet"  
         id="cmdidWindowsMediaFilename"  
         priority="0x0100" type="DynamicCombo"  
         idCommandList="cmdidWindowsMediaFilenameGetList"  
         defaultWidth="130">  
    <Parent guid="guidFirstToolWinCmdSet"  
            id="ToolbarGroupID" />  
    <CommandFlag>IconAndText</CommandFlag>  
    <CommandFlag>CommandWellOnly</CommandFlag>  
    <CommandFlag>StretchHorizontally</CommandFlag>  
    <Strings>  
      <CommandName>Filename</CommandName>  
      <ButtonText>Enter a Filename</ButtonText>  
    </Strings>  
  </Combo>  
</Combos>  
BitmapsBitmaps

Les commandes qui seront affiche avec une icône doivent inclure un Icon élément qui fait référence à une image bitmap à l’aide de son GUID et le code.Commands that will be displayed together with an icon must include an Icon element that refers to a bitmap by using its GUID and ID. Chaque bitmap est défini comme un Bitmap élément dans la Bitmaps section.Each bitmap is defined as a Bitmap Element in the Bitmaps section. Le seul obligatoire des attributs pour un Bitmap définition sont guid et href, qui pointe vers le fichier source.The only required attributes for a Bitmap definition are guid and href, which points to the source file. Si le fichier source est une bande de la ressource, un usedList attribut est également requis pour lister les images disponibles dans la bande.If the source file is a resource strip, a usedList attribute is also required, to list the available images in the strip. Pour plus d’informations, consultez la Bitmap élément documentation.For more information, see the Bitmap Element documentation.

ApparenterParenting

Les règles suivantes régissent la façon dont un élément peut appeler un autre élément de son parent.The following rules govern how an item can call another item as its parent.

ÉlémentElement Défini dans cette section de la Table de commandeDefined in this section of the Command Table Peut être contenu (en tant que parent, ou par position dans la CommandPlacements section, ou les deux)May be contained (as a parent, or by placement in the CommandPlacements section, or both) Peut contenir (également appelé un parent)May contain (referred to as a parent)
RegrouperGroup Élément groupes, l’IDE, les autres packages VSGroups Element, the IDE, other VSPackages Un menu, un groupe, l’élément lui-mêmeA menu, a group, the item itself Menus, les groupes et les commandesMenus, groups, and commands
MenuMenu Élément de menus, l’IDE, les autres packages VSMenus Element, the IDE, other VSPackages 1 pour n groupes1 to n groups 0 à n groupes0 to n groups
ToolBarToolbar Élément de menus, l’IDE, les autres packages VSMenus Element, the IDE, other VSPackages L’élément proprement ditThe item itself 0 à n groupes0 to n groups
Élément de menuMenu Item Boutons d’élément, l’IDE, les autres packages VSButtons Element, the IDE, other VSPackages 1 pour n des groupes, l’élément lui-même1 to n groups, the item itself -0 pour n groupes-0 to n groups
BoutonButton Boutons d’élément, l’IDE, les autres packages VSButtons Element, the IDE, other VSPackages 1 pour n des groupes, l’élément lui-même1 to n groups, the item itself
liste déroulanteCombo Élément de combinaisons, l’IDE, les autres packages VSCombos Element, the IDE, other VSPackages 1 pour n des groupes, l’élément lui-même1 to n groups, the item itself

Un menu, un groupe ou une commande peut apparaître dans plusieurs emplacements dans l’IDE.A menu, group, or command can appear in more than one location in the IDE. Pour l’élément doit apparaître dans plusieurs emplacements, il doit être ajouté à la CommandPlacements section comme un CommandPlacement élément.For an item to appear in multiple locations, it must be added to the CommandPlacements section as a CommandPlacement Element. N’importe quel menu, groupe ou une commande peut être ajouté comme un emplacement de la commande.Any menu, group, or command can be added as a command placement. Toutefois, les barres d’outils ne peut pas être positionnés de cette manière, car ils ne peut pas apparaître dans plusieurs emplacements contextuelles.However, toolbars cannot be positioned in this manner because they cannot appear in multiple context-sensitive locations.

Placements de commandes ont guid, id, et priority attributs.Command placements have guid, id, and priority attributes. Le GUID et l’ID doivent correspondre à ceux de l’élément est positionné.The GUID and ID must match those of the item that is positioned. Le priority attribut régit le positionnement de l’élément en ce qui concerne les autres éléments.The priority attribute governs the placement of the item with regard to other items. Lorsque l’IDE fusionne deux ou plusieurs éléments qui ont la même priorité, leurs emplacements ne sont pas définis, car l’IDE ne garantit pas que les ressources du package sont lus dans le même ordre chaque fois que le package est généré.When the IDE merges two or more items that have the same priority, their placements are undefined because the IDE does not guarantee that package resources are read in the same order every time that the package is built.

Si un menu ou un groupe s’affiche dans plusieurs emplacements, tous les enfants de ce menu ou le groupe apparaît dans chaque instance.If a menu or group appears in multiple locations, all children of that menu or group will appear in each instance.

Visibilité de la commande et le contexteCommand Visibility and Context

Lorsque plusieurs VSPackages sont installés, une pluralité des menus, des éléments de menu et des barres d’outils peut surcharger l’IDE.When multiple VSPackages are installed, a profusion of menus, menu items, and toolbars may clutter the IDE. Pour éviter ce problème, vous pouvez contrôler la visibilité des éléments individuels de l’interface utilisateur à l’aide de contraintes de visibilité et indicateurs de commande.To avoid this problem, you can control the visibility of individual UI elements by using visibility constraints and command flags.

Contraintes de visibilitéVisibility Constraints

Une contrainte de visibilité est définie comme un VisibilityItem élément dans la VisibilityConstraints section.A visibility constraint is set as a VisibilityItem Element in the VisibilityConstraints section. Une contrainte de visibilité définit des contextes spécifiques de l’interface utilisateur dans laquelle l’élément cible est visible.A visibility constraint defines specific UI contexts in which the target item is visible. Un menu ou une commande qui est inclus dans cette section est visible uniquement lorsqu’un des contextes définis est actif.A menu or command that is included in this section is visible only when one of the defined contexts is active. Si un menu ou une commande n’est pas référencé dans cette section, il est toujours visible par défaut.If a menu or command is not referenced in this section, it is always visible by default. Cette section ne s’applique pas aux groupes.This section does not apply to groups.

VisibilityItem les éléments doivent posséder des trois attributs, comme suit : le guid et id de l’élément d’interface utilisateur cible, et context.VisibilityItem elements must have three attributes, as follows: the guid and id of the target UI element, and context. Le context attribut spécifie si l’élément cible est visible et accepte n’importe quel contexte de l’interface utilisateur valide en tant que sa valeur.The context attribute specifies when the target item will be visible, and takes any valid UI context as its value. Les constantes de contexte de l’interface utilisateur de Visual Studio sont des membres de la VSConstants classe.The UI context constants for Visual Studio are members of the VSConstants class. Chaque VisibilityItem élément peut prendre la valeur de contexte qu’une seule.Every VisibilityItem element can take only one context value. Pour appliquer un deuxième contexte, créez une seconde VisibilityItem élément qui pointe vers le même élément, comme indiqué dans l’exemple suivant.To apply a second context, create a second VisibilityItem element that points to the same item, as shown in the following example.

<VisibilityConstraints>  
  <VisibilityItem guid="guidSolutionToolbarCmdSet"  
        id="cmdidTestCmd"  
        context="UICONTEXT_SolutionHasSingleProject" />  
  <VisibilityItem guid="guidSolutionToolbarCmdSet"  
        id="cmdidTestCmd"  
        context="UICONTEXT_SolutionHasMultipleProjects" />  
</VisibilityConstraints>  
Indicateurs de commandeCommand Flags

Les indicateurs de commande suivants peuvent affecter la visibilité des menus et elles s’appliquent à des commandes.The following command flags can affect the visibility of the menus and commands they apply to.

AlwaysCreateAlwaysCreate
Menu est créé même si elle n’a aucun groupe ou les boutons.Menu is created even if it has no groups or buttons.

Valide pour : MenuValid for: Menu

CommandWellOnlyCommandWellOnly
Appliquer cet indicateur si la commande n’apparaît pas dans le menu de niveau supérieur et que vous souhaitez rendre disponibles pour la personnalisation de l’interpréteur de commandes supplémentaires, par exemple, la liaison à une clé.Apply this flag if the command does not appear on the top-level menu and you want to make it available for additional shell customization, for example, binding it to a key. Une fois le package Visual Studio est installé, un utilisateur peut personnaliser ces commandes en ouvrant le Options boîte de dialogue, puis en modifiant le placement de commande sous la clavier environnement catégorie.After the VSPackage is installed, a user can customize these commands by opening the Options dialog box and then editing the command placement under the Keyboard Environment category. N’affecte pas la sélection élective sur les menus contextuels, les barres d’outils, les contrôleurs de menu ou les sous-menus.Does not affect placement on shortcut menus, toolbars, menu controllers, or submenus.

Valide pour : Button, ComboValid for: Button, Combo

DefaultDisabledDefaultDisabled
Par défaut, la commande est désactivée si le VSPackage qui implémente la commande n’est pas chargé ou la méthode QueryStatus n’a pas été appelée.By default, the command is disabled if the VSPackage that implements the command is not loaded or the QueryStatus method has not been called.

Valide pour : Button, ComboValid for: Button, Combo

DefaultInvisibleDefaultInvisible
Par défaut, la commande est invisible si le VSPackage qui implémente la commande n’est pas chargé ou la méthode QueryStatus n’a pas été appelée.By default, the command is invisible if the VSPackage that implements the command is not loaded or the QueryStatus method has not been called.

Doit être combiné avec le DynamicVisibility indicateur.Should be combined with the DynamicVisibility flag.

Valide pour : Button, Combo, MenuValid for: Button, Combo, Menu

DynamicVisibilityDynamicVisibility
La visibilité de la commande peut être modifiée à l’aide de la méthode QueryStatus ou un GUID qui est inclus dans le VisibilityConstraints section.The visibility of the command can be changed by using the QueryStatus method or a context GUID that is included in the VisibilityConstraints section.

S’applique aux commandes qui s’affichent dans les menus, pas sur les barres d’outils.Applies to commands that appear on menus, not on toolbars. Les éléments de barre d’outils de niveau supérieur peuvent être désactivées, mais ne pas masquées, lorsque l’indicateur OLECMDF_INVISIBLE est retourné à partir de la méthode QueryStatus.Top-level toolbar items can be disabled, but not hidden, when the OLECMDF_INVISIBLE flag is returned from the QueryStatus method.

Dans un menu, cet indicateur indique également qu’il doit être automatiquement masqué lorsque ses membres sont masquées.On a menu, this flag also indicates that it should be automatically hidden when its members are hidden. Cet indicateur est généralement attribué aux sous-menus, car les menus de niveau supérieur ont déjà ce comportement.This flag is typically assigned to submenus because top-level menus already have this behavior.

Doit être combiné avec le DefaultInvisible indicateur.Should be combined with the DefaultInvisible flag.

Valide pour : Button, Combo, MenuValid for: Button, Combo, Menu

NoShowOnMenuControllerNoShowOnMenuController
Si une commande qui possède cet indicateur est positionnée sur un contrôleur de menu, la commande n’apparaît pas dans la liste déroulante.If a command that has this flag is positioned on a menu controller, the command does not appear in the drop-down list.

Valide pour : ButtonValid for: Button

Pour plus d’informations sur les indicateurs de commande, consultez le élément indicateur de commande documentation.For more information about command flags, see the Command Flag Element documentation.

Exigences généralesGeneral requirements

Votre commande doit passer à la série de tests suivante avant de pouvoir être affiché et activé :Your command must pass the following series of tests before it can be displayed and enabled:

  • La commande est positionnée correctement.The command is positioned correctly.

  • Le DefaultInvisible indicateur n’est pas défini.The DefaultInvisible flag is not set.

  • Le menu parent ou la barre d’outils est visible.The parent menu or toolbar is visible.

  • La commande n’est pas invisible en raison d’une entrée de contexte dans le VisibilityConstraints élément section.The command is not invisible because of a context entry in the VisibilityConstraints Element section.

  • Code VSPackage qui implémente le IOleCommandTarget interface affiche et permet à votre commande.VSPackage code that implements the IOleCommandTarget interface displays and enables your command. Aucun code d’interface interceptée et l’action.No interface code intercepted it and acted on it.

  • Lorsqu’un utilisateur clique sur votre commande, il est soumis à la procédure décrite dans algorithme de routage.When a user clicks your command, it becomes subject to the procedure that is outlined in Routing Algorithm.

Appel des commandes prédéfiniesCalling Pre-defined Commands

Le UsedCommands élément VSPackages permet d’accéder aux commandes qui sont fournies par d’autres packages VS, ou par l’IDE.The UsedCommands Element enables VSPackages to access commands that are provided by other VSPackages or by the IDE. Pour ce faire, créez un UsedCommand élément qui a le GUID et l’ID de la commande à utiliser.To do this, create a UsedCommand Element that has the GUID and ID of the command to use. Cela garantit que la commande sera chargée par Visual Studio, même si elle n’est pas partie de la configuration actuelle de Visual Studio.This ensures that the command will be loaded by Visual Studio, even if it is not part of the current Visual Studio configuration. Pour plus d’informations, consultez UsedCommand élément.For more information, see UsedCommand Element.

Apparence de l’élément d’interfaceInterface Element Appearance

Considérations pour la sélection et le positionnement des éléments de la commande sont les suivantes :Considerations for selecting and positioning command elements are as follows:

  • Visual StudioVisual Studio offre de nombreux éléments d’interface utilisateur qui s’affichent différemment en fonction de la sélection élective. offers many UI elements that appear differently depending on placement.

  • Un élément d’interface utilisateur qui est défini à l’aide de la DefaultInvisible indicateur n’est pas affiché dans l’IDE, sauf si elle est soit affiché par son implémentation VSPackage de la QueryStatus (méthode), ou associé à un contexte de l’interface utilisateur spécifique dans la VisibilityConstraints section.A UI element that is defined by using the DefaultInvisible flag will not be displayed in the IDE unless it is either displayed by its VSPackage implementation of the QueryStatus method, or associated with a particular UI context in the VisibilityConstraints section.

  • Même une commande correctement positionnée ne peut-être pas s’afficher.Even a successfully positioned command may not be displayed. Étant donné que l’IDE automatiquement masque ou affiche des commandes, en fonction des interfaces qui le VSPackage a (ou pas) l’implémentation.This is because the IDE automatically hides or displays some commands, depending on interfaces that the VSPackage has (or has not) implemented. Par exemple, l’implémentation d’un VSPackage de certains créer des interfaces causes build les éléments de menu à afficher automatiquement.For example, a VSPackage's implementation of some build interfaces causes build-related menu items to be automatically shown.

  • Appliquer le CommandWellOnly indicateur dans la définition d’élément d’interface utilisateur signifie que la commande peut être ajoutée uniquement par la personnalisation.Applying the CommandWellOnly flag in the definition of UI element means that the command can be added only by customization.

  • Commandes peuvent être uniquement disponibles dans certains contextes d’interface utilisateur, par exemple, uniquement quand une boîte de dialogue s’affiche lorsque l’IDE est en mode design.Commands may be available only in certain UI contexts, for example, only when a dialog box is displayed when the IDE is in design view.

  • Pour spécifier que certains éléments d’interface utilisateur à afficher dans l’IDE, vous devez implémenter une ou plusieurs interfaces, ou écrire du code.To cause certain UI elements to be displayed in the IDE, you must implement one or more interfaces or write some code.

Voir aussiSee Also

Extension des menus et des commandesExtending Menus and Commands