Condividi tramite


Creare file con estensione vsct

Questo documento illustra come creare un file con estensione vsct per aggiungere voci di menu, barre degli strumenti e altri elementi dell'interfaccia utente all'ambiente di sviluppo integrato (IDE) di Visual Studio. Usare questi passaggi quando si aggiungono elementi dell'interfaccia utente a un pacchetto di Visual Studio (VSPackage) che non dispone già di un file vsct .

Per i nuovi progetti, è consigliabile usare il modello di pacchetto di Visual Studio perché genera un file con estensione vsct che, a seconda delle selezioni, include già gli elementi necessari per un comando di menu, una finestra degli strumenti o un editor personalizzato. È possibile modificare questo file con estensione vsct per soddisfare i requisiti del pacchetto VSPackage. Per altre informazioni su come modificare un file con estensione vsct , vedere gli esempi in Estendere menu e comandi.

Creare il file

Creare un file con estensione vsct in queste fasi: creare la struttura per file e risorse, dichiarare gli elementi dell'interfaccia utente, inserire gli elementi dell'interfaccia utente nell'IDE e aggiungere eventuali comportamenti specializzati.

Struttura del file

La struttura di base di un file con estensione vsct è un elemento radice CommandTable che contiene un elemento Commands e un elemento Symbols .

Per creare la struttura di file

  1. Aggiungere un file vsct al progetto seguendo la procedura descritta in Procedura: Creare un file con estensione vsct.

  2. Aggiungere gli spazi dei nomi necessari all'elemento CommandTable , come illustrato nell'esempio seguente:

    <CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    
  3. Nell'elemento CommandTable aggiungere un Commands elemento per ospitare tutti i menu personalizzati, le barre degli strumenti, i gruppi di comandi e i comandi. In modo che gli elementi dell'interfaccia utente personalizzati possano essere caricati, l'elemento deve avere Package l'attributo Commands impostato sul nome del pacchetto.

    Dopo l'elemento Commands , aggiungere un Symbols elemento per definire i GUID per il pacchetto e i nomi e gli ID dei comandi per gli elementi dell'interfaccia utente.

Includere risorse di Visual Studio

Usare l'elemento Extern per accedere ai file che definiscono i comandi di Visual Studio e i menu necessari per inserire gli elementi dell'interfaccia utente nell'IDE. Se si useranno comandi definiti all'esterno del pacchetto, usare l'elemento UsedCommands per informare Visual Studio.

Per includere le risorse di Visual Studio

  1. Nella parte superiore dell'elemento CommandTable aggiungere un Extern elemento per ogni file esterno a cui fare riferimento e impostare l'attributo href sul nome del file. È possibile fare riferimento ai file di intestazione seguenti per accedere alle risorse di Visual Studio:

    • Stdidcmd.h: definisce gli ID per tutti i comandi esposti da Visual Studio.

    • Vsshlids.h: contiene gli ID comando per i menu di Visual Studio.

  2. Se il pacchetto chiama i comandi definiti da Visual Studio o da altri pacchetti, aggiungere un UsedCommands elemento dopo l'elemento Commands . Popolare questo elemento con un elemento UsedCommand per ogni comando chiamato che non fa parte del pacchetto. Impostare gli guid attributi e id degli UsedCommand elementi sui valori GUID e ID dei comandi da chiamare.

    Per altre informazioni su come trovare i GUID e gli ID dei comandi di Visual Studio, vedere GUID e ID dei comandi di Visual Studio. Per chiamare comandi da altri pacchetti, usare il GUID e l'ID del comando come definito nel file vsct per tali pacchetti.

Dichiarare gli elementi dell'interfaccia utente

Dichiara tutti i nuovi elementi dell'interfaccia utente nella Symbols sezione del file vsct .

Per dichiarare gli elementi dell'interfaccia utente

  1. Nell'elemento Symbols aggiungere tre elementi GuidSymbol . Ogni GuidSymbol elemento ha un name attributo e un value attributo. Impostare l'attributo name in modo che rifletta lo scopo dell'elemento. L'attributo value accetta un GUID. (Per generare un GUID, nel Menu Strumenti , selezionare Crea GUID e quindi selezionare Formato registro.

    Il primo GuidSymbol elemento rappresenta il pacchetto e in genere non ha elementi figlio. Il secondo GuidSymbol elemento rappresenta il set di comandi e conterrà tutti i simboli che definiscono i menu, i gruppi e i comandi. Il terzo GuidSymbol elemento rappresenta l'archivio immagini e contiene simboli per tutte le icone per i comandi. Se non si dispone di comandi che usano icone, è possibile omettere il terzo GuidSymbol elemento.

  2. Nell'elemento che rappresenta il GuidSymbol set di comandi aggiungere uno o più elementi IDSymbol . Ognuno di questi rappresenta un menu, una barra degli strumenti, un gruppo o un comando da aggiungere all'interfaccia utente.

    Per ogni IDSymbol elemento, impostare l'attributo name sul nome che verrà usato per fare riferimento al menu, al gruppo o al comando corrispondente e quindi impostare l'elemento value su un numero esadecimale che rappresenterà il relativo ID comando. Nessun elemento IDSymbol con lo stesso elemento padre può avere lo stesso valore.

  3. Se uno degli elementi dell'interfaccia utente richiede icone, aggiungere un IDSymbol elemento per ogni icona all'elemento che rappresenta l'archivio GuidSymbol immagini.

Inserire elementi dell'interfaccia utente nell'IDE

Gli elementi Menu, Gruppi e Pulsanti contengono le definizioni per tutti i menu, i gruppi e i comandi definiti nel pacchetto. Inserire questi menu, gruppi e comandi nell'IDE usando un elemento Parent , che fa parte della definizione dell'elemento dell'interfaccia utente o usando un elemento CommandPlacement definito altrove.

Ogni Menuelemento , Groupe Button ha un guid attributo e un id attributo . Impostare sempre l'attributo guid in modo che corrisponda al nome dell'elemento GuidSymbol che rappresenta il set di comandi e impostare l'attributo id sul nome dell'elemento IDSymbol che rappresenta il menu, il gruppo o il comando nella Symbols sezione.

Per definire gli elementi dell'interfaccia utente

  1. Se si definiscono nuovi menu, sottomenu, menu di scelta rapida o barre degli strumenti, aggiungere un Menus elemento all'elemento Commands . Quindi, per ogni menu da creare, aggiungere un elemento Menu all'elemento Menus .

    Impostare gli guid attributi e id dell'elemento Menu e quindi impostare l'attributo type sul tipo di menu desiderato. È anche possibile impostare l'attributo priority per stabilire la posizione relativa del menu nel gruppo padre.

    Nota

    L'attributo priority non si applica alle barre degli strumenti e ai menu di scelta rapida.

  2. Tutti i comandi nell'IDE di Visual Studio devono essere ospitati dai gruppi di comandi, ovvero gli elementi figlio diretti di menu e barre degli strumenti. Se si aggiungono nuovi menu o barre degli strumenti all'IDE, questi devono contenere nuovi gruppi di comandi. È anche possibile aggiungere gruppi di comandi a menu e barre degli strumenti esistenti in modo da poter raggruppare visivamente i comandi.

    Quando si aggiungono nuovi gruppi di comandi, è prima necessario creare un Groups elemento e quindi aggiungerlo a esso un elemento Group per ogni gruppo di comandi.

    Impostare gli guid attributi e id di ogni Group elemento e quindi impostare l'attributo priority per stabilire la posizione relativa del gruppo nel menu padre. Per altre informazioni, vedere Creare gruppi riutilizzabili di pulsanti.

  3. Se si aggiungono nuovi comandi all'IDE, aggiungere un Buttons elemento all'elemento Commands . Quindi, per ogni comando, aggiungere un elemento Button all'elemento Buttons .

    1. Impostare gli guid attributi e id di ogni Button elemento e quindi impostare l'attributo type sul tipo di pulsante desiderato. È anche possibile impostare l'attributo priority per stabilire la posizione relativa del comando nel gruppo padre.

      Nota

      Usare type="button" per i comandi e i pulsanti di menu standard sulle barre degli strumenti.

    2. Nell'elemento aggiungere un elemento Strings che contiene un elemento ButtonText e un elemento CommandName.Button L'elemento ButtonText fornisce l'etichetta di testo per una voce di menu o la descrizione comando per un pulsante della barra degli strumenti. L'elemento CommandName fornisce il nome del comando da usare nell'area dei comandi.

    3. Se il comando avrà un'icona, creare un elemento Icon nell'elemento Button e impostarne guid gli attributi e id sull'elemento Bitmap per l'icona.

      Nota

      I pulsanti della barra degli strumenti devono avere icone.

    Per altre informazioni, vedere MenuCommands e OleMenuCommands.

  4. Se uno dei comandi richiede icone, aggiungere un elemento Bitmap all'elemento Commands . Quindi, per ogni icona, aggiungere un elemento Bitmap all'elemento Bitmaps . Qui si specifica il percorso della risorsa bitmap. Per altre informazioni, vedere Aggiungere icone ai comandi di menu.

    È possibile fare affidamento sulla struttura padre per posizionare correttamente la maggior parte dei menu, dei gruppi e dei comandi. Per i set di comandi di dimensioni molto grandi o quando un menu, un gruppo o un comando deve essere visualizzato in più posizioni, è consigliabile specificare il posizionamento dei comandi.

Per fare affidamento sull'elemento padre per inserire gli elementi dell'interfaccia utente nell'IDE

  1. Per l'elemento padre tipico, creare un Parent elemento in ogni Menuelemento , Groupe Command definito nel pacchetto.

    La destinazione dell'elemento Parent è il menu o il gruppo che conterrà il menu, il gruppo o il comando.

    1. Impostare l'attributo guid sul nome dell'elemento GuidSymbol che definisce il set di comandi. Se l'elemento di destinazione non fa parte del pacchetto, usare il GUID per il set di comandi, come definito nel file con estensione vsct corrispondente.

    2. Impostare l'attributo id in modo che corrisponda all'attributo id del menu o del gruppo di destinazione. Per un elenco dei menu e dei gruppi esposti da Visual Studio, vedere GUID e ID di menu o GUID di Visual Studio e ID delle barre degli strumenti di Visual Studio.

    Se si dispone di un numero elevato di elementi dell'interfaccia utente da inserire nell'IDE o se sono presenti elementi che devono essere visualizzati in più posizioni, definire la posizione nell'elemento CommandPlacements , come illustrato nei passaggi seguenti.

Per usare il posizionamento dei comandi per inserire gli elementi dell'interfaccia utente nell'IDE

  1. Dopo l'elemento Commands aggiungere un elemento CommandPlacements.

  2. Nell'elemento CommandPlacements aggiungere un CommandPlacement elemento per ogni menu, gruppo o comando da inserire.

    Ogni CommandPlacement elemento o Parent elemento inserisce un menu, un gruppo o un comando in un'unica posizione dell'IDE. Un elemento dell'interfaccia utente può avere un solo elemento padre, ma può avere più posizionamenti dei comandi. Per inserire un elemento dell'interfaccia utente in più posizioni, aggiungere un CommandPlacement elemento per ogni posizione.

  3. Impostare gli guid attributi e id di ogni CommandPlacement elemento sul menu o sul gruppo di hosting, proprio come per un Parent elemento. È anche possibile impostare l'attributo priority per stabilire la posizione relativa dell'elemento dell'interfaccia utente.

    È possibile combinare il posizionamento tramite l'elemento padre e il posizionamento dei comandi. Tuttavia, per set di comandi di grandi dimensioni, è consigliabile usare solo il posizionamento dei comandi.

Aggiungere comportamenti specializzati

È possibile usare l'elemento CommandFlag per modificare il comportamento dei menu e dei comandi, ad esempio per modificarne l'aspetto e la visibilità. È anche possibile influire quando un comando è visibile usando l'elemento VisibilityConstraints o aggiungere tasti di scelta rapida usando l'elemento KeyBindings . Alcuni tipi di menu e comandi hanno già comportamenti specializzati incorporati.

Per aggiungere comportamenti specializzati

  1. Per rendere visibile un elemento dell'interfaccia utente solo in determinati contesti dell'interfaccia utente, ad esempio quando viene caricata una soluzione, usare vincoli di visibilità.

    1. Dopo l'elemento Commands aggiungere un elemento VisibilityConstraints.

    2. Per ogni elemento dell'interfaccia utente da vincolare, aggiungere un elemento VisibilityItem .

    3. Per ogni VisibilityItem elemento, impostare gli guid attributi e id sul menu, il gruppo o il comando e quindi impostare l'attributo sul contesto dell'interfaccia context utente desiderato, come definito nella UIContextGuids80 classe .

  2. Per impostare la visibilità o la disponibilità di un elemento dell'interfaccia utente nel codice, usare uno o più dei flag di comando seguenti:

    • DefaultDisabled

    • DefaultInvisible

    • DynamicItemStart

    • DynamicVisibility

    • NoShowOnMenuController

    • NotInTBList

    Per altre informazioni, vedere l'elemento CommandFlag .

  3. Per modificare la modalità di visualizzazione di un elemento o modificarne l'aspetto in modo dinamico, usare uno o più dei flag di comando seguenti:

    • AlwaysCreate

    • CommandWellOnly

    • DefaultDocked

    • DontCache

    • DynamicItemStart

    • FixMenuController

    • IconAndText

    • Pict

    • StretchHorizontally

    • TextMenuUseButton

    • TextChanges

    • TextOnly

    Per altre informazioni, vedere l'elemento CommandFlag .

  4. Per modificare la modalità di reazione di un elemento quando riceve i comandi, usare uno o più dei flag di comando seguenti:

    • AllowParams

    • CaseSensitive

    • CommandWellOnly

    • FilterKeys

    • NoAutoComplete

    • NoButtonCustomize

    • NoKeyCustomize

    • NoToolbarClose

    • PostExec

    • RouteToDocs

    • TextIsAnchorCommand

    Per altre informazioni, vedere l'elemento CommandFlag .

  5. Per collegare un tasto di scelta rapida dipendente dal menu a un menu o a una voce di un menu, aggiungere un carattere e commerciale (&) nell'elemento ButtonText per il menu o la voce di menu. Il carattere che segue la e commerciale è il tasto di scelta rapida attivo quando il menu padre è aperto.

  6. Per collegare un tasto di scelta rapida indipendente dal menu a un comando, usare l'elemento KeyBindings . Per altre informazioni, vedere l'elemento KeyBinding .

  7. Per localizzare il testo del menu, usare l'elemento LocCanonicalName . Per altre informazioni, vedere l'elemento Strings .

    Alcuni tipi di menu e pulsanti includono comportamenti specializzati. L'elenco seguente descrive alcuni tipi di menu e pulsanti specializzati. Per altri tipi, vedere le descrizioni degli types attributi negli elementi Menu, Button e Combo .

    • Casella combinata: una casella combinata è un elenco a discesa che può essere usato su una barra degli strumenti. Per aggiungere caselle combinate all'interfaccia utente, creare un elemento Combos nell'elemento Commands . Aggiungere quindi all'elemento Combos un Combo elemento per ogni casella combinata da aggiungere. Combo gli elementi hanno gli stessi attributi e elementi figlio degli Button elementi e hanno DefaultWidth anche attributi e idCommandList . L'attributo DefaultWidth imposta la larghezza in pixel e l'attributo idCommandList punta a un ID comando utilizzato per popolare la casella combinata.

    • Controller di menu: un controller di menu è un pulsante con una freccia accanto. Facendo clic sulla freccia si apre un elenco. Per aggiungere un controller di menu all'interfaccia utente, creare un Menu elemento e impostarne type l'attributo su MenuController o MenuControllerLatched, a seconda del comportamento desiderato. Per popolare un controller di menu, impostarlo come elemento padre di un Group elemento. Il controller di menu visualizzerà tutti gli elementi figlio del gruppo nell'elenco a discesa.