Condividi tramite


Aggiungere un comando alla barra degli strumenti Esplora soluzioni

Questa procedura dettagliata illustra come aggiungere un pulsante alla barra degli strumenti Esplora soluzioni.

Qualsiasi comando su una barra degli strumenti o un menu viene chiamato pulsante in Visual Studio. Quando si fa clic sul pulsante, viene eseguito il codice nel gestore dei comandi. In genere, i comandi correlati vengono raggruppati per formare un unico gruppo. I menu o le barre degli strumenti fungono da contenitori per i gruppi. La priorità determina l'ordine in cui i singoli comandi di un gruppo vengono visualizzati nel menu o sulla barra degli strumenti. È possibile impedire la visualizzazione di un pulsante sulla barra degli strumenti o sul menu controllandone la visibilità. Un comando elencato in una <VisibilityConstraints> sezione del file con estensione vsct viene visualizzato solo nel contesto associato. La visibilità non può essere applicata ai gruppi.

Per altre informazioni su menu, comandi della barra degli strumenti e file con estensione vsct , vedere Comandi, menu e barre degli strumenti.

Nota

Usare i file xml Command Table (vsct) anziché i file di configurazione della tabella dei comandi (con estensione ctc) per definire la modalità di visualizzazione dei menu e dei comandi nei pacchetti VSPackage. Per altre informazioni, vedere Tabella dei comandi di Visual Studio (. File vsct).

Creare un'estensione con un comando di menu

Creare un progetto VSIX denominato SolutionToolbar. Aggiungere un modello di voce di comando di menu denominato ToolbarButton. Per informazioni su come eseguire questa operazione, vedere Creare un'estensione con un comando di menu.

Aggiungere un pulsante alla barra degli strumenti Esplora soluzioni

Questa sezione della procedura dettagliata illustra come aggiungere un pulsante alla barra degli strumenti Esplora soluzioni. Quando si fa clic sul pulsante, viene eseguito il codice nel metodo di callback.

  1. Nel file ToolbarButtonPackage.vsct passare alla <Symbols> sezione . Il <GuidSymbol> nodo contiene il gruppo di menu e il comando generati dal modello di pacchetto. Aggiungere un <IDSymbol> elemento a questo nodo per dichiarare il gruppo che conterrà il comando.

    <IDSymbol name="SolutionToolbarGroup" value="0x0190"/>
    
  2. <Groups> Nella sezione, dopo la voce di gruppo esistente, definire il nuovo gruppo dichiarato nel passaggio precedente.

    <Group guid="guidToolbarButtonPackageCmdSet"
           id="SolutionToolbarGroup" priority="0xF000">
            <Parent guid="guidSHLMainMenu" id="IDM_VS_TOOL_PROJWIN"/>
          </Group>
    

    L'impostazione della coppia GUID:ID padre su guidSHLMainMenu e IDM_VS_TOOL_PROJWIN inserisce questo gruppo sulla barra degli strumenti Esplora soluzioni e l'impostazione di un valore con priorità alta lo inserisce dopo gli altri gruppi di comandi.

  3. <Buttons> Nella sezione modificare l'ID padre della voce generata <Button> in modo da riflettere il gruppo definito nel passaggio precedente. L'elemento modificato <Button> dovrebbe essere simile al seguente:

    <Button guid="guidToolbarButtonPackageCmdSet" id="ToolbarButtonId" priority="0x0100" type="Button">
        <Parent guid="guidToolbarButtonPackageCmdSet" id="SolutionToolbarGroup" />
        <Icon guid="guidImages" id="bmpPicStrikethrough" />
        <Strings>
            <ButtonText>Invoke ToolbarButton</ButtonText>
        </Strings>
    </Button>
    
  4. Compilare il progetto e avviare il debug. Viene visualizzata l'istanza sperimentale.

    La barra degli strumenti Esplora soluzioni dovrebbe visualizzare il nuovo pulsante di comando a destra dei pulsanti esistenti. L'icona del pulsante è la barrata.

  5. Fare clic sul nuovo pulsante.

    Verrà visualizzata una finestra di dialogo con il messaggio ToolbarButtonPackage Inside SolutionToolbar.ToolbarButton.MenuItemCallback().

Controllare la visibilità di un pulsante

Questa sezione della procedura dettagliata illustra come controllare la visibilità di un pulsante su una barra degli strumenti. Impostando un contesto su uno o più progetti nella <VisibilityConstraints> sezione del file SolutionToolbar.vsct , è possibile limitare la visualizzazione di un pulsante solo quando un progetto o progetti è aperto.

Per visualizzare un pulsante quando uno o più progetti sono aperti

  1. <Buttons> Nella sezione toolbarButtonPackage.vsct aggiungere due flag di comando all'elemento esistente<Button>, tra i <Strings> tag e <Icons> .

    <CommandFlag>DefaultInvisible</CommandFlag>
    <CommandFlag>DynamicVisibility</CommandFlag>
    

    I DefaultInvisible flag e DynamicVisibility devono essere impostati in modo che le voci nella <VisibilityConstraints> sezione possano essere applicate.

  2. Creare una <VisibilityConstraints> sezione con due <VisibilityItem> voci. Inserire la nuova sezione subito dopo il tag di chiusura </Commands> .

    <VisibilityConstraints>
        <VisibilityItem guid="guidToolbarButtonPackageCmdSet"
              id="ToolbarButtonId"
              context="UICONTEXT_SolutionHasSingleProject" />
        <VisibilityItem guid="guidToolbarButtonPackageCmdSet"
              id="ToolbarButtonId"
              context="UICONTEXT_SolutionHasMultipleProjects" />
    </VisibilityConstraints>
    

    Ogni elemento di visibilità rappresenta una condizione in cui viene visualizzato il pulsante specificato. Per applicare più condizioni, è necessario creare più voci per lo stesso pulsante.

  3. Compilare il progetto e avviare il debug. Viene visualizzata l'istanza sperimentale.

    La barra degli strumenti Esplora soluzioni non contiene il pulsante barrato.

  4. Aprire qualsiasi soluzione contenente un progetto.

    Il pulsante barrato viene visualizzato sulla barra degli strumenti a destra dei pulsanti esistenti.

  5. Scegliere Chiudi soluzione dal menu File. Il pulsante scompare dalla barra degli strumenti.

    La visibilità del pulsante viene controllata da Visual Studio fino al caricamento del pacchetto VSPackage. Dopo il caricamento del pacchetto VSPackage, la visibilità del pulsante viene controllata dal pacchetto VSPackage. Per altre informazioni, vedere MenuCommands e OleMenuCommands.