Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 dei file
La struttura di base di un file .vsct è costituita da un elemento radice CommandTable che contiene un elemento Commands e un elemento Symbols.
Per creare la struttura di file
Aggiungere un file vsct al progetto seguendo la procedura descritta in Procedura: Creare un file con estensione vsct.
Aggiungere i namespace 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">Nell'elemento
CommandTableaggiungere unCommandselemento 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'elementoCommandsdeve avere l'attributoPackageimpostato sul nome del pacchetto.Dopo l'elemento
Commands, aggiungere unSymbolselemento 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
Nella parte superiore dell'elemento
CommandTableaggiungere unExternelemento per ogni file esterno a cui fare riferimento e impostare l'attributohrefsul 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.
Se il pacchetto chiama i comandi definiti da Visual Studio o da altri pacchetti, aggiungere un
UsedCommandselemento dopo l'elementoCommands. Popolare questo elemento con un elemento UsedCommand per ogni comando chiamato che non fa parte del pacchetto. Imposta gli attributiguideiddegli elementiUsedCommandai 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
Nell'elemento
Symbolsaggiungere tre elementi GuidSymbol . OgniGuidSymbolelemento ha unnameattributo e unvalueattributo. Impostare l'attributonamein modo che rifletta lo scopo dell'elemento. L'attributovalueaccetta un GUID. Per generare un GUID, scegliere Crea GUID dal menu Strumenti e quindi selezionare Formato registro.Il primo elemento
GuidSymbolrappresenta il pacchetto e in genere non ha figli. Il secondoGuidSymbolelemento rappresenta il set di comandi e conterrà tutti i simboli che definiscono i menu, i gruppi e i comandi. Il terzoGuidSymbolelemento 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 terzoGuidSymbolelemento.Nell'elemento che rappresenta il
GuidSymbolset 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
IDSymbolelemento, impostare l'attributonamesul nome che verrà usato per fare riferimento al menu, al gruppo o al comando corrispondente e quindi impostare l'elementovaluesu un numero esadecimale che rappresenterà il relativo ID comando. Nessun elementoIDSymbolcon lo stesso elemento padre può avere lo stesso valore.Se uno degli elementi dell'interfaccia utente richiede icone, aggiungere un
IDSymbolelemento per ogni icona all'elemento che rappresenta l'archivioGuidSymbolimmagini.
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
Se si definiscono nuovi menu, sottomenu, menu di scelta rapida o barre degli strumenti, aggiungere un
Menuselemento all'elementoCommands. Quindi, per ogni menu da creare, aggiungere un elemento Menu all'elementoMenus.Impostare gli
guidattributi eiddell'elementoMenue quindi impostare l'attributotypesul tipo di menu desiderato. È anche possibile impostare l'attributopriorityper stabilire la posizione relativa del menu nel gruppo padre.Annotazioni
L'attributo
prioritynon si applica alle barre degli strumenti e ai menu di scelta rapida.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
Groupselemento e quindi aggiungerlo a esso un elemento Group per ogni gruppo di comandi.Impostare gli
guidattributi eiddi ogniGroupelemento e quindi impostare l'attributopriorityper stabilire la posizione relativa del gruppo nel menu padre. Per altre informazioni, vedere Creare gruppi riutilizzabili di pulsanti.Se si aggiungono nuovi comandi all'IDE, aggiungere un
Buttonselemento all'elementoCommands. Quindi, per ogni comando, aggiungere un elemento Button all'elementoButtons.Impostare gli
guidattributi eiddi ogniButtonelemento e quindi impostare l'attributotypesul tipo di pulsante desiderato. È anche possibile impostare l'attributopriorityper stabilire la posizione relativa del comando nel gruppo padre.Annotazioni
Usare
type="button"per i comandi e i pulsanti di menu standard sulle barre degli strumenti.Nell'elemento
Buttonaggiungere un elemento Strings che contiene un elemento ButtonText e un elemento CommandName . L'elementoButtonTextfornisce l'etichetta di testo per una voce di menu o il tooltip per un pulsante della barra degli strumenti. L'elementoCommandNamefornisce il nome del comando da usare nell'area dei comandi.Se il comando avrà un'icona, creare un elemento Icon nell'elemento
Buttone impostarneguidgli attributi eidsull'elementoBitmapper l'icona.Annotazioni
I pulsanti della barra degli strumenti devono avere icone.
Per altre informazioni, vedere MenuCommands e OleMenuCommands.
Se uno dei comandi richiede icone, aggiungere un elemento Bitmap all'elemento
Commands. Quindi, per ogni icona, aggiungere un elemento Bitmap all'elementoBitmaps. 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.
Fare affidamento sulla genitorialità per posizionare gli elementi dell'interfaccia utente nell'ambiente di sviluppo integrato (IDE)
Per una configurazione tipica, creare un elemento
Parentin ciascun elementoMenu,GroupeCommanddefinito nel pacchetto.La destinazione dell'elemento
Parentè il menu o il gruppo che conterrà il menu, il gruppo o il comando.Impostare l'attributo
guidsul nome dell'elementoGuidSymbolche 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 corrispondente file .vsct.Impostare l'attributo
idin modo che corrisponda all'attributoiddel menu o del gruppo di destinazione. Per un elenco dei menu e dei gruppi esposti da Visual Studio, vedere GUID e ID dei menu di Visual Studio o GUID 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
Dopo l'elemento
Commandsaggiungere un elementoCommandPlacements.Nell'elemento
CommandPlacementsaggiungere unCommandPlacementelemento per ogni menu, gruppo o comando da inserire.Ogni
CommandPlacementelemento oParentelemento 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 unCommandPlacementelemento per ogni posizione.Impostare gli
guidattributi eiddi ogniCommandPlacementelemento sul menu o sul gruppo di hosting, proprio come per unParentelemento. È anche possibile impostare l'attributopriorityper 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
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à.
Dopo l'elemento
Commandsaggiungere un elementoVisibilityConstraints.Per ogni elemento dell'interfaccia utente da vincolare, aggiungere un elemento VisibilityItem .
Per ogni
VisibilityItemelemento, impostare gli attributiguideidsul menu, gruppo o comando e quindi impostare l'attributocontextsul contesto dell'interfaccia utente desiderato, come definito nella classe UIContextGuids80.
Per impostare la visibilità o la disponibilità di un elemento dell'interfaccia utente nel codice, usare uno o più dei flag di comando seguenti:
DefaultDisabledDefaultInvisibleDynamicItemStartDynamicVisibilityNoShowOnMenuControllerNotInTBList
Per altre informazioni, vedere l'elemento CommandFlag .
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:
AlwaysCreateCommandWellOnlyDefaultDockedDontCacheDynamicItemStartFixMenuControllerIconAndTextPictStretchHorizontallyTextMenuUseButtonTextChangesTextOnly
Per altre informazioni, vedere l'elemento CommandFlag .
Per modificare la modalità di reazione di un elemento quando riceve i comandi, usare uno o più dei flag di comando seguenti:
AllowParamsCaseSensitiveCommandWellOnlyFilterKeysNoAutoCompleteNoButtonCustomizeNoKeyCustomizeNoToolbarClosePostExecRouteToDocsTextIsAnchorCommand
Per altre informazioni, vedere l'elemento CommandFlag .
Per collegare un tasto di scelta rapida che dipende dal menu a un menu o a una voce di menu, aggiungere un simbolo ampersand (&) nell'elemento
ButtonTextper il menu o la voce di menu. Il carattere che segue il simbolo '&' è il tasto di scelta rapida attivo quando il menu principale è aperto.Per collegare un tasto di scelta rapida indipendente dal menu a un comando, usare l'elemento KeyBindings . Per altre informazioni, vedere l'elemento KeyBinding .
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
typesattributi 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'elementoCombosunComboelemento per ogni casella combinata da aggiungere. Gli elementiCombohanno gli stessi attributi e elementi figlio degli elementiButtone anche gli attributiDefaultWidtheidCommandList. L'attributoDefaultWidthimposta la larghezza in pixel e l'attributoidCommandListpunta 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
Menuelemento e impostarnetypel'attributo suMenuControlleroMenuControllerLatched, a seconda del comportamento desiderato. Per popolare un controller di menu, configurarlo come genitore dell'elementoGroup. Il controller di menu visualizzerà tutti gli elementi figlio del gruppo nell'elenco a discesa.