Ajouter une barre d’outils à une fenêtre Outil

Cette procédure pas à pas montre comment ajouter une barre d’outils à une fenêtre Outil.

Une barre d’outils est une bande horizontale ou verticale qui contient des boutons liés aux commandes. La longueur d’une barre d’outils dans une fenêtre Outil est toujours la même que la largeur ou la hauteur de la fenêtre Outil, selon l’emplacement où la barre d’outils est un élément épinglé.

Contrairement aux barres d’outils de l’IDE, une barre d’outils dans une fenêtre Outil doit être un élément épinglé et ne peut pas être déplacée ou personnalisée. Si le VSPackage est écrit dans du code non managé, la barre d’outils peut être un élément épinglé sur n’importe quel bord.

Pour plus d'informations sur l'ajout d'une barre d'outils, consultez la section Ajout d'une barre d'outils.

Créer une barre d’outils pour une fenêtre Outil

  1. Créez un projet VSIX nommé TWToolbar avec une commande de menu nommée TWTestCommand et une fenêtre Outil nommée TestToolWindow. Pour plus d’informations, consultez Créer une extension avec une commande de menu et Créer une extension avec une fenêtre Outil. Vous devez ajouter le modèle d’élément de commande avant d’ajouter le modèle de fenêtre Outil.

  2. Dans TWTestCommandPackage.vsct, recherchez la section Symboles. Dans le nœud GuidSymbol nommé guidTWTestCommandPackageCmdSet, déclarez une barre d’outils et un groupe de barres d’outils, comme suit.

    <IDSymbol name="TWToolbar" value="0x1000" />
    <IDSymbol name="TWToolbarGroup" value="0x1050" />
    
  3. En haut de la section Commands, créez une section Menus. Ajoutez un élément Menu pour définir la barre d’outils.

    <Menus>
        <Menu guid="guidTWTestCommandPackageCmdSet" id="TWToolbar" type="ToolWindowToolbar">
            <CommandFlag>DefaultDocked</CommandFlag>
            <Strings>
                <ButtonText>Test Toolbar</ButtonText>
                <CommandName>Test Toolbar</CommandName>
            </Strings>
        </Menu>
    </Menus>
    

    Les barres d’outils ne peuvent pas être imbriquées comme les sous-menus. Par conséquent, vous n’avez pas besoin d’affecter un parent. De plus, il n'est pas nécessaire de définir une priorité, car l'utilisateur peut déplacer les barres d'outils. En règle générale, l'emplacement initial d'une barre d'outils est défini par programme, mais les modifications ultérieures apportées par l'utilisateur sont conservées.

  4. Dans la section Groupes, définissez un groupe qui contiendra les commandes de la barre d'outils.

    
    <Group guid="guidTWTestCommandPackageCmdSet" id="TWToolbarGroup" priority="0x0000">
        <Parent guid="guidTWTestCommandPackageCmdSet" id="TWToolbar" />
    </Group>
    
  5. Dans la section Boutons, remplacez le parent de l'élément Bouton existant par le groupe de la barre d'outils afin que la barre d'outils soit affichée.

    <Button guid="guidTWTestCommandPackageCmdSet" id="TWTestCommandId" priority="0x0100" type="Button">
        <Parent guid="guidTWTestCommandPackageCmdSet" id="TWToolbarGroup" />
        <Icon guid="guidImages" id="bmpPic1" />
        <Strings>
            <ButtonText>Invoke TWTestCommand</ButtonText>
        </Strings>
    </Button>
    

    Par défaut, si une barre d'outils n'a pas de commandes, elle n'apparaît pas.

    La nouvelle barre d'outils n'étant pas automatiquement ajoutée à la fenêtre Outil, elle doit être ajoutée explicitement. Cette situation est présentée dans la section suivante.

Ajouter la barre d’outils à une fenêtre Outil

  1. Dans TWTestCommandPackageGuids.cs, ajoutez les lignes suivantes.

    public const string guidTWTestCommandPackageCmdSet = "00000000-0000-0000-0000-0000";  // get the GUID from the .vsct file
    public const int TWToolbar = 0x1000;
    
  2. Dans TestToolWindow.cs, ajoutez l’instruction d’utilisation suivante.

    using System.ComponentModel.Design;
    
  3. Dans le constructeur TestToolWindow, ajoutez la ligne suivante.

    this.ToolBar = new CommandID(new Guid(TWTestCommandPackageGuids.guidTWTestCommandPackageCmdSet), TWTestCommandPackageGuids.TWToolbar);
    

Tester la barre d’outils dans la fenêtre Outil

  1. Générez le projet et commencez le débogage. L'instance expérimentale de Visual Studio devrait apparaître.

  2. Dans le menu Affichage / Autres fenêtres, cliquez sur Test ToolWindow pour afficher la fenêtre Outil.

    Vous devriez voir une barre d'outils (elle ressemble à l'icône par défaut) en haut à gauche de la fenêtre Outil, juste en dessous du titre.

  3. Dans la barre d'outils, cliquez sur l'icône pour afficher le message TWTestCommandPackage Inside TWToolbar.TWTestCommand.MenuItemCallback().