Condividi tramite


L'interfaccia utente personalizzata (controllo del codice sorgente VSPackage)

Un VSPackage dichiara le relative voci di menu e i relativi stati predefiniti dal file della Tabella dei comandi di Visual Studio (.vsct). L'ambiente di sviluppo integrato di Visual Studio (IDE) visualizzare voci di menu negli stati predefiniti che venga completato il caricamento del package VS. Successivamente, il metodo di QueryStatus viene chiamato per abilitare o disabilitare le voci di menu.

Un VSPackage possibile impostare una chiave del Registro di sistema pertanto il package VS può essere caricato automaticamente in base al contesto dell'(UI) interfaccia utente del comando, anche se in genere un controllo del codice sorgente VSPackage necessario caricare su richiesta anziché limitarsi passare all'interfaccia utente un contesto specifico. Per ulteriori informazioni sulla chiave del Registro di sistema di AutoLoadPackages, vedere Caricamento package VS..

Interfaccia utente di un VSPackage

Un pacchetto del controllo del codice sorgente viene implementato come VSPackage e non utilizza alcuna interfaccia utente da Visual Studio. Ogni controllo del codice sorgente VSPackage necessario specificare i propri elementi dell'interfaccia utente quali le voci di menu, gruppi di menu, le finestre degli strumenti, barre degli strumenti e qualsiasi interfaccia utente richiesta per impostare le opzioni specifiche del controllo del codice sorgente VSPackage. Questi elementi di interfaccia utente possono essere abilitati in modo statico o dinamico. Elementi statici dell'interfaccia utente sono definiti in un file di .vsct e viene visualizzato se il package VS viene caricato o meno. Gli elementi dinamici dell'interfaccia utente siano visibili in un contesto specifico dell'interfaccia utente del comando, come vsContextNoSolution, o come risultato di una chiamata al metodo di QueryStatus . La visibilità degli elementi dinamici dell'interfaccia utente è conforme alla strategia per il caricamento ritardato di Vspackage.

Vincoli di interfaccia utente sul controllo del codice sorgente package VS.

Poiché il controllo del codice sorgente VSPackage non può essere rimosso dall'IDE dopo che è stato caricato, il package VS deve essere in grado di immettere stato inattivo. Quando un package VS riceve la notifica che non è più attiva, il package VS disabilita la relativa interfaccia utente e ignora tutte le interazioni dell'IDE di esterno. L'implementazione del package VS del metodo di QueryStatus necessario nascondere i controlli quando il package VS non è attivo.

Ogni controllo del codice sorgente VSPackage deve implementare l'interfaccia di IVsSccProvider . Due metodi sull'interfaccia, SetActive e SetInactive, devono essere implementati dal package VS.

Il controllo del codice sorgente VSPackage possibile sottoscrivere diversi eventi dell'IDE, implementati da IVsSolutionEvents3, IVsTrackProjectDocumentsEvents2, e così via. Inoltre, il package VS possibile implementare le interfacce di callback il Registro di sistema-abilitate, come IVsSolutionPersistence. Questi devono essere ignorati una volta inattivi.

Nell'elenco seguente sono indicate le interfacce interessate dallo stato attivo di un controllo del codice sorgente VSPackage:

  • Il progetto dell'indicatore vengono illustrati gli eventi.

  • Eventi della soluzione.

  • Interfacce di persistenza della soluzione. Una volta inattivi, i pacchetti non devono scrivere nei file con estensione sln e suo.

  • Estensione della proprietà.

IVsQueryEditQuerySave2 obbligatorio e IVsSccManager2nonché alcune interfacce facoltative associate al controllo del codice sorgente, non vengono chiamati quando il controllo del codice sorgente VSPackage è inattivo.

Quando l'ide di Visual Studio viene avviata, Visual Studio imposta il contesto dell'interfaccia utente del comando sull'ID dell'ID predefinita corrente di un VSPackage del controllo del codice sorgente Ciò fa in modo che l'interfaccia utente statica del controllo del codice sorgente attivo VSPackage venga visualizzato nell'IDE senza caricare il package VS. pause diVisual Studio per il package VS è registrato con Visual Studio con IVsRegisterScciProvider prima di effettuare tutte le chiamate al package VS.

Nella tabella seguente vengono descritti i dettagli specifici sull'IDE di Visual Studio nasconde i diversi elementi di interfaccia utente.

Elemento dell'interfaccia utente

Descrizione

Menu e barre degli strumenti

Il pacchetto del controllo del codice sorgente necessario impostare gli stati iniziali di visibilità della barra degli strumenti e del menu sull'ID pacchetto del controllo del codice sorgente nella sezione di VisibilityConstraints del file di .vsct. Ciò consente all'IDE di Visual Studio per impostare lo stato delle voci di menu in modo appropriato senza caricare il package VS e chiamare l'implementazione del metodo di QueryStatus .

Finestre degli strumenti

Il controllo del codice sorgente VSPackage nasconde tutte le finestre degli strumenti che possiede quando viene prodotto inattivo.

Pagine VSPackage-specifiche di opzioni del controllo del codice sorgente

La chiave del Registro di sistema HKLM \SOFTWARE\Microsoft\VisualStudio\X.Y\ToolsOptionsPages\VisibilityCmdUIContexts lets a VSPackage imposta i contesti in cui richiede le relative pagine di opzioni da visualizzare. Una voce del Registro di sistema nella chiave deve essere creata tramite il servizio l'ID (SID) del servizio di controllo del codice sorgente e assegnandogli un valore DWORD pari a 1. Ogni volta che un evento dell'interfaccia utente logico in un contesto il controllo del codice sorgente VSPackage è registrato con, il package VS verrà chiamato se è attivo.

Vedere anche

Riferimenti

QueryStatus

IVsQueryEditQuerySave2

IVsSccManager2

IVsRegisterScciProvider

vsContextNoSolution

Concetti

Caricamento package VS.