Comment VSPackages ajoute des éléments d’interface utilisateurHow VSPackages add user interface elements

Un VSPackage peut ajouter des éléments d’interface (UI) utilisateur, par exemple, les menus, barres d’outils et de l’outil windows, à Visual Studio par le biais de la .vsct fichier.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 pour l’expérience utilisateur Visual Studio.You can find design guidelines for UI elements at Visual Studio user experience guidelines.

L’architecture de table de commande de Visual StudioThe Visual Studio command table architecture

Comme indiqué, l’architecture de table de commande prend en charge les principes d’architecture susmentionnés.As noted, the command table architecture supports the foregoing architectural principles. Les principes derrière les abstractions, les structures de données et les outils de l’architecture de 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. Menus peuvent être exposées dans l’interface utilisateur comme les menus, sous-menus, des barres d’outils ou des 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ées 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 positionnement 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 parent, même si elle 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 avoir également un groupe parent.Every standard menu must also have a parent group. Barres d’outils et fenêtres Outil agissent comme leurs propres parents.Toolbars and tool windows act as their own parents. Un groupe peut avoir comme son parent de la barre de menus de 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éfinis.How items are defined

Un .vsct fichier est au format XML.A .vsct file is formatted in XML. Il définit les éléments d’interface utilisateur pour un package et détermine où ces éléments s’affichent dans l’IDE.It 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 d’abord affecté un GUID et l’ID dans le 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 la .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 présente un standard Symbols section telle que générée 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 élément GuidSymbol.The top-level element of the Symbols section is the GuidSymbol element. GuidSymbol éléments de mappent les noms de 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ées 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 créer un GUID sur le outils menu.You can also create a unique GUID by clicking Create GUID on the Tools menu.

La première 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. Ceci est le GUID qui 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 d’é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 bitmaps 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 suivre cette convention, mais chaque menu, un groupe, une commande et un 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é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 élément IDSymbol mappe 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 bitmaps qui peut ê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, un groupe ou une 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 disposer des éléments suivants :Every UI element must have the following things:

  • Un 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 d’associé 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.

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

  • Un é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:

  • Un type attribut qui spécifie si le menu doit apparaître 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.

  • Un élément Strings qui contient un élément ButtonText, qui spécifie le titre du menu dans l’IDE et un élément CommandName, 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. Un CommandFlag élément peut apparaître dans une définition de menu pour modifier son apparence ou le comportement dans l’IDE.A CommandFlag element may appear in a menu definition to change its appearance or behavior in the IDE.

    Chaque Menu élément doit avoir un groupe 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 le é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 apparaît dans la barre de menus de Visual Studio, en regard 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 le Groups section de la .vsct fichier.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 groupe est définie uniquement par sa signature, priorité et parent.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 dans 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 dans 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’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 apparaître 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éfinies dans le Buttons section.Buttons are defined in the Buttons section. N’importe quel élément de menu, bouton ou autre élément qu’un utilisateur clique pour exécuter une commande unique 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 bouton peuvent également inclure des fonctionnalités de la liste.Some button types can also include list functionality. Les boutons ont les mêmes que celles requises et les attributs facultatifs de menus, et peut également avoir un élément Icon 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 élément Buttons 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’affiche dans l’IDE en tant qu’un élément de menu dans le menu 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>  
CombosCombos

Combos sont définies dans le 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 être ou non 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. Combos ont les mêmes éléments et le comportement que les 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:

  • Un 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 affichés 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 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 élément de Bitmap 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 nécessaire, pour répertorier 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 le élément de Bitmap documentation.For more information, see the Bitmap element documentation.

ParentageParenting

Les règles suivantes régissent la façon dont un élément peut appeler un autre élément en tant que 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 (appelée en tant que parent)May contain (referred to as a parent)
RegrouperGroup Élément Groups, 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 menus, l’IDE, les autres packages VSMenus element, the IDE, other VSPackages 1 à n groupes1 to n groups 0 à n groupes0 to n groups
ToolBarToolbar Élément menus, l’IDE, les autres packages VSMenus element, the IDE, other VSPackages L’élément lui-mêmeThe item itself 0 à n groupes0 to n groups
Élément de menuMenu Item Élément Buttons, l’IDE, les autres packages VSButtons element, the IDE, other VSPackages 1 à n des groupes, l’élément lui-même1 to n groups, the item itself -0 à n groupes-0 to n groups
BoutonButton Élément Buttons, l’IDE, les autres packages VSButtons element, the IDE, other VSPackages 1 à n des groupes, l’élément lui-même1 to n groups, the item itself
Liste déroulanteCombo Élément combos, l’IDE, les autres packages VSCombos element, the IDE, other VSPackages 1 à 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 un élément s’affiche dans plusieurs emplacements, il doit être ajouté à la CommandPlacements section comme un élément CommandPlacement.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 commande 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é, leur placement est indéfinis, car l’IDE ne garantit pas que les ressources de 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 de groupe s’affichent dans chaque instance.If a menu or group appears in multiple locations, all children of that menu or group will appear in each instance.

Contexte et la visibilité de commandeCommand visibility and context

Lorsque plusieurs packages VS sont installés, une pluralité des menus, les éléments de menu et les barres d’outils peut-être encombrer 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 d’interface utilisateur individuels à l’aide de les 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 élément VisibilityItem 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 d’interface utilisateur spécifiques dans lequel 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 éléments doivent avoir 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 quand 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 pour 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’un seul.Every VisibilityItem element can take only one context value. Pour appliquer un deuxième contexte, créez une deuxième VisibilityItem élément vers lequel pointe 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.

AlwaysCreate
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

CommandWellOnly
Appliquer cet indicateur si la commande n’apparaît pas dans le menu de niveau supérieur et que vous souhaitez rendre disponible 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 VSPackage 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, des barres d’outils, des contrôleurs de menu ou des sous-menus.Does not affect placement on shortcut menus, toolbars, menu controllers, or submenus.

Valide pour : Button, ComboValid for: Button, Combo

DefaultDisabled
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

DefaultInvisible
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ée avec la DynamicVisibility indicateur.Should be combined with the DynamicVisibility flag.

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

DynamicVisibility
La visibilité de la commande peut être modifiée à l’aide de la QueryStatus méthode ou un GUID de contexte 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. Éléments de barre d’outils de niveau supérieur peuvent être désactivés, mais ne pas masqués, lorsque le OLECMDF_INVISIBLE indicateur est retourné à partir de la QueryStatus (méthode).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és.On a menu, this flag also indicates that it should be automatically hidden when its members are hidden. Cet indicateur est généralement affecté à 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ée avec la DefaultInvisible indicateur.Should be combined with the DefaultInvisible flag.

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

NoShowOnMenuController
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 CommandFlag élément documentation.For more information about command flags, see the CommandFlag element documentation.

Exigences généralesGeneral requirements

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

  • La commande est correctement positionnée.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 élément VisibilityConstraints section.The command is not invisible because of a context entry in the VisibilityConstraints element section.

  • Code de VSPackage qui implémente le IOleCommandTarget interface affiche et permet d’exécuter la 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 devient 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.

Appeler des commandes prédéfiniesCall pre-defined commands

Le élément UsedCommands permet aux VSPackages pour accéder aux commandes qui sont fournies par les autres VSPackages 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 élément UsedCommand ayant 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 élément UsedCommand.For more information, see UsedCommand element.

Apparence de l’élément d’interfaceInterface element appearance

Considérations relatives à la sélection et le positionnement des éléments de 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 s’affichera pas dans l’IDE, sauf si elle est soit affiché par son implémentation VSPackage de la QueryStatus (méthode), ou associés à un contexte d’interface utilisateur particulier 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 pas s’afficher.Even a successfully positioned command may not be displayed. Cela est étant donné que l’IDE automatiquement masque ou affiche certaines commandes, en fonction des interfaces que le VSPackage a (ou pas) implémentée.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 disponibles uniquement 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

Étendre des menus et commandesExtend menus and commands