Condividi tramite


creare. file di Vsct

In questo documento viene illustrato come creare un file di .vsct per aggiungere voci di menu, le barre degli strumenti e altri elementi dell'interfaccia utente (UI) all'ambiente di sviluppo integrato di Visual (IDE) Studio. Use these steps when you add UI elements to a Visual Studio Package (VSPackage) that does not already have a .vsct file.

Per i nuovi progetti, è consigliabile utilizzare il modello importa pacchetto di Visual Studio perché viene generato un file di .vsct che, a seconda delle selezioni, dispone già degli elementi necessari per un comando di menu, una finestra degli strumenti, o un editor personalizzato. È possibile modificare questo file di .vsct per soddisfare le esigenze del package VS. For more information about how to modify a .vsct file, see the examples in Procedure dettagliate per i controlli, i menu e le barre degli strumenti.

Authoring the File

creare un file di .vsct in queste fasi: Creare la struttura dei file e le risorse, dichiarare elementi di interfaccia utente, inserire gli elementi di interfaccia utente nell'IDE e aggiungere tutti i comportamenti specifici.

struttura di file

La struttura di base di un file di .vsct è un elemento radice di CommandTable contenente un elemento di Controlli e un elemento di simboli .

Per creare la struttura di file

  1. Aggiungere un file di .vsct al progetto seguendo i passaggi illustrati in Procedura: Creare un oggetto. file di Vsct.

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

    <CommandTable xmlns="https://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" 
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
  3. In the CommandTable element, add a Commands element to host all of your custom menus, toolbars, command groups, and commands. In modo da poter caricare elementi dell'interfaccia utente personalizzati, l'elemento di Commands necessario disporre del set di attributi Package al nome del pacchetto.

    Dopo l'elemento di Commands , aggiungere un elemento di Symbols per definire i GUID per il package e i nomi e gli ID di comando per gli elementi di interfaccia utente.

Incluse le risorse di Visual Studio

Utilizzare l'elemento di esterno per accedere ai file che definiscono i comandi di Visual Studio e menu che sono necessari inserire gli elementi di interfaccia utente nell'IDE. Se si utilizza i controlli definiti all'esterno del pacchetto, utilizzare l'elemento di UsedCommands per notificare a Visual Studio.

Per includere risorse di Visual Studio

  1. All'inizio dell'elemento di CommandTable , aggiungere un elemento di Extern per ciascun file esterno in cui si fa riferimento e impostare l'attributo di href al nome del file. È possibile fare riferimento ai seguenti file di intestazione per accedere alle risorse di Visual Studio:

    • Stdidcmd.h, definisce gli ID per tutti i controlli esposti da Visual Studio.

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

    • Msobtnid.h, definisce altre costanti di VSCT; ciò include l'icona standard ID.

  2. Se il pacchetto chiama i controlli definiti da Visual Studio o da altri pacchetti, aggiungere un elemento di UsedCommandsdopo l'elemento di Commands . Inserire questo elemento e un elemento di UsedCommand per ciascun comando che chiamate che non fa parte del pacchetto. Impostare gli attributi di id e di guid degli elementi di UsedCommand ai valori ID e di GUID dei comandi chiamare. Per ulteriori informazioni su come individuare i GUID e gli ID dei comandi di Visual Studio, vedere GUID e ID dei comandi di Visual Studio. Per chiamare i controlli da altri pacchetti, utilizzare il GUID e l'ID di comando come definito nel file di .vsct per quelli pacchetti.

Dichiarazione di elementi di interfaccia utente

Dichiarare gli eventuali nuovi elementi dell'interfaccia utente nella sezione di Symbols del file di .vsct.

Per dichiarare gli elementi di interfaccia utente

  1. Nell'elemento di Symbols , aggiungere tre elementi di GuidSymbol . Ogni elemento di GuidSymbol dispone di un attributo di name e un attributo di value . Impostare l'attributo di name in modo che rifletta lo scopo dell'elemento. L'attributo di value accetta un GUID. (Per generare un GUID, scegliere dal menu di strumenti , scegliere da Crea GUIDquindi selezionare Formato del Registro Di Sistema).

    il primo elemento di GuidSymbol rappresenta il pacchetto e in genere non ha figli. Il secondo elemento di GuidSymbol rappresenta l'insieme di comando e conterrà tutti i simboli che definiscono i menu, gruppi e controlli. Il terzo elemento di GuidSymbol rappresenta l'archivio di immagine e contiene simboli per tutte le icone per i controlli. Se non si dispone di controlli che vengano utilizzate le icone, è possibile omettere il terzo elemento di GuidSymbol .

  2. Nell'elemento di GuidSymbol che rappresenta il set di comando, aggiungere uno o più elementi di IDSymbol . Ognuno di questi rappresenta un menu, la barra degli strumenti, gruppo, o si ordina sta aggiungendo all'interfaccia utente.

    Per ogni elemento di IDSymbol , impostare l'attributo di name al nome che verrà utilizzato per fare riferimento al menu corrispondente, al gruppo, o al comando e quindi impostare l'elemento di value a un numero esadecimale che rappresenterà l'id di comando Nessun due elementi di IDSymbol che ha lo stesso padre può avere lo stesso valore.

  3. Se uno degli elementi di interfaccia utente richiedono le icone, aggiungere un elemento di IDSymbol per ogni icona all'elemento di GuidSymbol che rappresenta l'archivio di immagine.

Inserire gli elementi di interfaccia utente nell'IDE

L'elemento di menu , l'elemento di gruppi e l'elemento di pulsanti contengono le definizioni di tutti menu, gruppi e controlli definiti nel pacchetto. Inserire questi menu, gruppi e controlli nell'IDE utilizzando un elemento di Elemento padre , che fa parte della definizione dell'elemento dell'interfaccia utente, oppure mediante un elemento di CommandPlacement definito altrove.

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

Per definire gli elementi di interfaccia utente

  1. Se si sta definendo nuovi menu, sottomenu, menu di scelta rapida, o barre degli strumenti, aggiungere un elemento di Menus all'elemento di Commands . Quindi, per ogni menu vengano creati, aggiungere un elemento di menu all'elemento di Menus .

    Impostare gli attributi di id e di guid dell'elemento di Menuquindi impostare l'attributo di type al tipo di menu desiderato. È inoltre possibile impostare l'attributo di priority per stabilire la posizione relativa del menu del gruppo padre. Per ulteriori informazioni, vedere Procedura: Creare i menu, i menu e i menu di scelta rapida e Procedura: Creare barre degli strumenti nell'IDE.

    Nota

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

  2. Tutti i controlli nell'IDE di Visual Studio devono essere ospitati da gruppi di controlli, che sono figli diretti dei menu e le barre degli strumenti. Se si aggiungono nuovi menu e barre degli strumenti dell'IDE, questi devono contenere nuovi gruppi di controlli. È inoltre possibile aggiungere gruppi di controlli ai menu esistenti e le barre degli strumenti in modo da poter raggruppare visivamente dei controlli.

    Quando si aggiungono nuovi gruppi di controlli, è necessario innanzitutto creare un elemento di Groups quindi aggiungere a un elemento di gruppo per ogni gruppo di controlli.

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

  3. Se si aggiungono nuovi controlli all'IDE, aggiungere un elemento di Buttons all'elemento di Commands . Quindi, per ogni comando, aggiungere un elemento di pulsante all'elemento di Buttons .

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

      Nota

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

    2. Nell'elemento di Button, aggiungere un elemento di stringhe contenente un elemento di ButtonText e un elemento di CommandName . L'elemento di ButtonText fornisce un'etichetta di testo per una voce di menu, o la descrizione per un pulsante della barra degli strumenti. L'elemento di CommandName fornisce il nome del comando utilizzare correttamente il comando.

    3. Se il comando sarà un'icona, creare un elemento di icona nell'elemento di Buttone impostare i relativi attributi di id e di guid all'elemento di Bitmap per l'icona.

      Nota

      I pulsanti della barra degli strumenti devono disporre di icone.

    Per ulteriori informazioni, vedere Procedura: Creare e gestire i comandi in Vspackage (c#).

  4. Se uno dei controlli richiedono le icone, aggiungere un elemento di bitmap all'elemento di Commands . Quindi, per ogni icona, aggiungere un elemento di bitmap all'elemento di Bitmaps . Ciò consente di specificare la posizione della risorsa bitmap. Per ulteriori informazioni, vedere Procedura: Per aggiungere icone ai controlli sulle barre degli strumenti.

È possibile basarsi sulla struttura di elemento padre correttamente per inserire la maggior parte di menu, di gruppo e controlli. Per i set di dimensioni del comando, oppure quando un menu, un gruppo, o un comando devono essere visualizzati in più punti, è consigliabile specificare la posizione del comando.

Per basare sull'elemento padre per posizionare gli elementi di interfaccia utente nell'IDE

  • Per il elemento padre comune, creare un elemento di Parent in ogni Menu, Groupe elemento di Command definito nel pacchetto.

    La destinazione dell'elemento di Parent è il menu o sul gruppo che conterranno il menu, il gruppo, o il comando.

    1. Impostare l'attributo di guid al nome dell'elemento di GuidSymbol che definisce il set di comando. Se l'elemento di destinazione non fa parte del pacchetto, utilizzare il GUID per tale set di comando, come definito nel file corrispondente di .vsct.

    2. Impostare l'attributo di id per ottenere una corrispondenza con l'attributo di id il menu o il 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 di interfaccia utente da inserire nell'IDE, oppure se sono presenti elementi che devono essere presenti in più punti, definire le relative posizioni nell'elemento di CommandPlacements , come illustrato di seguito.

Per utilizzare posizione del comando per posizionare gli elementi di interfaccia utente nell'IDE

  1. dopo l'elemento di Commands , aggiungere un elemento di CommandPlacements .

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

    Ogni elemento di CommandPlacement o l'elemento di Parentappoggia un menu, gruppo, o comando in un percorso dell'IDE. Un elemento dell'interfaccia utente può avere un solo padre, ma può avere più posizioni del comando. Per individuare un elemento dell'interfaccia utente in più posizioni, aggiungere un elemento di CommandPlacement per ogni posizione.

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

È possibile combinare la posizione elemento padre e ordinare la posizione. Tuttavia, per i set di dimensioni del comando, è consigliabile utilizzare solo la posizione del comando.

Aggiunta dei comportamenti specifici

È possibile utilizzare gli elementi di CommandFlag per modificare il comportamento dei menu e controlli, ad esempio, modificarne l'aspetto e la visibilità. È inoltre possibile modificare quando un comando è visibile utilizzando VisibilityConstraints, aggiungere le scelte rapide da tastiera utilizzando KeyBindings. Alcuni tipi di menu dei controlli e dispongono già specializzato i comportamenti predefiniti.

Per aggiungere i comportamenti specifici

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

    1. dopo l'elemento di Commands , aggiungere un elemento di VisibilityConstraints .

    2. Per ogni elemento dell'interfaccia utente vincolino, aggiungere un elemento di VisibilityItem .

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

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

    • DefaultDisabled

    • DefaultInvisible

    • DynamicItemStart

    • DynamicVisibility

    • NoShowOnMenuController

    • NotInTBList

    Per ulteriori informazioni, vedere Elemento Command Flag.

  3. Per modificare il modo in cui è visualizzato un elemento, o modificare dinamicamente il relativo aspetto, utilizzare uno o più dei seguenti flag del comando:

    • AlwaysCreate

    • CommandWellOnly

    • DefaultDocked

    • DontCache

    • DynamicItemStart

    • FixMenuController

    • IconAndText

    • Pict

    • StretchHorizontally

    • TextMenuUseButton

    • TextChanges

    • TextOnly

    Per ulteriori informazioni, vedere Elemento Command Flag.

  4. Per modificare il modo in cui un elemento risponde quando riceve i controlli, utilizzare uno o più dei seguenti flag del comando:

    • AllowParams

    • CaseSensitive

    • CommandWellOnly

    • FilterKeys

    • NoAutoComplete

    • NoButtonCustomize

    • NoKeyCustomize

    • NoToolbarClose

    • PostExec

    • RouteToDocs

    • TextIsAnchorCommand

    Per ulteriori informazioni, vedere Elemento Command Flag.

  5. Per connettere una scelta rapida menu-dipendente a un menu o una voce di un menu, aggiungere un (" & ") del carattere " e commerciale nell'elemento per il menu o la voce di menu. Il carattere che segue l'e aziendale rappresenta la scelta rapida attiva quando il menu padre viene aperto.

  6. Per connettere una scelta rapida dell'menu-indipendente a un comando, utilizzare KeyBindings. Per ulteriori informazioni, vedere Elemento KeyBinding.

  7. Per localizzare il testo del menu, utilizzare l'elemento di LocCanonicalName . Per ulteriori informazioni, vedere Elemento Strings.

Alcuni tipi di pulsanti e del menu includano comportamenti specifici. Nella tabella seguente vengono descritti alcuni tipi specializzati il pulsante e del menu. Per altri tipi, vedere le descrizioni degli attributi di types in Elemento Menu, Elemento Buttone Elemento Combo.

  • Casella combinata
    Una casella combinata è un elenco a discesa che può essere utilizzato in una barra degli strumenti. Per aggiungere le caselle combinate all'interfaccia utente, creare un elemento di Combos nell'elemento di Commands . Aggiungere quindi all'elemento di Combos un elemento di Combo per ogni casella combinata da aggiungere. gli elementi diCombo hanno gli stessi attributi ed elementi figlio come elementi di Button e dispongono inoltre di DefaultWidth e attributi di idCommandList . I set di attributi DefaultWidth la larghezza in pixel e l'attributo di idCommandList indica un ID di comando utilizzato per popolare la casella combinata. Per ulteriori informazioni, vedere la documentazione di elemento di Combo .

  • MenuController
    Un controller di menu è un pulsante che presenta una freccia accanto. Fare clic sulla freccia apre un elenco. Per aggiungere un controller di menu all'interfaccia utente, creare un elemento di Menu e impostarne l'attributo di type a MenuController o a MenuControllerLatched, in base al comportamento desiderato. Per popolare un controller di menu, impostarlo come elemento padre di un elemento di Group . Il controller di visualizzare tutti i figli di tale gruppo nel relativo elenco a discesa.

Vedere anche

Concetti

Riferimento XML Schema VSCT

Altre risorse

Attività comuni con i controlli, i menu e le barre degli strumenti

Tabella dei comandi di Visual Studio (. file di Vsct)