Creando pagine di opzioni utilizzando le classi gestite del Framework del pacchetto
In Visual Studio il framework gestito del pacchetto, le classi derivate da DialogPage estendere l'ide di Visual Studio aggiungendo le pagine di opzioni nel menu di strumenti .
Un oggetto che implementa una determinata pagina di Opzione degli strumenti è associato a un Vspackage specifico dall'oggetto di ProvideOptionPageAttribute .
Poiché l'ambiente creare un'istanza dell'oggetto che implementa una determinata pagina di Opzioni degli strumenti quando quella determinata pagina viene visualizzata nell'IDE:
Una pagina di Opzione degli strumenti deve essere implementata nel relativo oggetto e non sull'oggetto che implementa un VSPackage.
Un oggetto non può implementare più pagine di Opzioni degli strumenti .
Registrando come provider della pagina delle Opzioni degli Strumenti
Una configurazione di supporto dell'utente di un VSPackage attraverso le pagine di Opzioni degli strumenti indica che gli oggetti che forniscono queste pagine di Opzioni degli strumenti applicando le istanze di ProvideOptionPageAttribute venivano applicate a Package l'implementazione.
È necessario che esista un'istanza di ProvideOptionPageAttribute per ogni DialogPage- tipo derivato che implementa una pagina di Opzioni degli strumenti .
Ogni istanza di ProvideOptionPageAttribute utilizza il tipo che implementa la pagina di Opzioni degli strumenti , stringhe contenenti la categoria e la sottocategoria utilizzate per identificare una pagina di Opzioni degli strumenti e le informazioni sulle risorse per registrare il tipo come fornire una pagina di Opzioni degli strumenti . Per ulteriori informazioni, vedere Utilizzando le pagine di opzioni.
Mantenere lo stato della pagina delle Opzioni degli Strumenti
Se l'implementazione della pagina di Opzioni degli strumenti registrata con il supporto di automazione abilitato, l'ide mantiene lo stato della pagina a tutte le altre pagine di Opzioni degli strumenti . Per ulteriori informazioni, vedere Utilizzando le pagine di opzioni.
Un VSPackage possibile gestire la propria persistenza utilizzando ProvideProfileAttribute. Il solo un o un altro metodo di persistenza deve essere utilizzato.
implementare la classe di DialogPage
Un oggetto che fornisce l'implementazione di un package VS di DialogPage- il tipo derivato è possibile usufruire delle funzionalità ereditate:
Una finestra predefinita dell'interfaccia utente.
Un qualsiasi disponibile il meccanismo di persistenza predefinito se ProvideProfileAttribute viene applicato alla classe, o se la proprietà di SupportsProfiles è impostata su true per ProvideOptionPageAttribute applicato alla classe.
supporto di automazione.
Il requisito minimo per un oggetto che implementa una pagina di Opzioni degli strumenti utilizzando DialogPage è l'aggiunta di proprietà pubbliche.
Se la classe correttamente registrata come provider della pagina di Opzioni degli strumenti , quindi le proprietà pubbliche è disponibile nella sezione di opzioni del menu di strumenti sotto forma di griglia delle proprietà.
Tutte queste funzionalità predefinite possono essere sottoposte a override. Ad esempio, creare un'interfaccia utente più specializzata richiede solo eseguire l'override dell'implementazione predefinita di Window.
Esempio
Che segue è “hello un'implementazione semplice world„ di una pagina di opzioni. Aggiungendo il seguente codice a un progetto predefinito creato dal modello del pacchetto di Visual Studio con l'opzione di comando di menu selezionata verrà data dimostrazione adeguatamente la funzionalità della pagina di opzione.
Descrizione
La classe definisce “hello una pagina minima di opzioni world„. Una volta aperto, l'utente può impostare la proprietà pubblica di HelloWorld in una griglia delle proprietà.
Codice
Imports System
Imports Microsoft.VisualStudio.Shell
Namespace Company.UIUserSettingsToolsOptionsPages
Class HelloWorldOptions
Inherits DialogPage
Private m_helloWorld As Boolean = True
Public Property HelloWorld() As Boolean
Get
Return m_helloWorld
End Get
Set(ByVal value As Boolean)
m_helloWorld = value
End Set
End Property
End Class
End Namespace
using System;
using Microsoft.VisualStudio.Shell;
namespace Company.UIUserSettingsToolsOptionsPages
{
class HelloWorldOptions : DialogPage
{
bool helloWorld = true;
public bool HelloWorld
{
get { return helloWorld; }
set { helloWorld = value; }
}
}
}
Descrizione
Applicare l'attributo seguente alla classe del pacchetto rende disponibile la pagina delle opzioni quando il pacchetto viene caricato. I numeri vengono risorsa arbitraria ID per la categoria e la pagina e il valore boolean alla fine di specificare se la pagina supporta l'automazione.
Codice
<PackageRegistration(UseManagedResourcesOnly:=True)> _
<DefaultRegistryRoot("Software\Microsoft\VisualStudio\9.0")> _
<InstalledProductRegistration(False, "#110", "#112", "1.0", IconResourceID:=400)> _
<ProvideLoadKey("Standard", "1.0", "Package Name", "Company", 1)> _
<ProvideMenuResource(1000, 1)> _
<Guid(GuidList.guidPkgString)> _
<ProvideOptionPage(GetType(HelloWorldOptions), "Hello World Category", "Hello World Page", 1000, 1001, False)> _
Public NotInheritable Class UIUserSettingsToolsOptionsPagesPackage
Inherits Package
[ProvideOptionPage(typeof(HelloWorldOptions),
"Hello World Category", "Hello World Page",
1000, 1001, false)]
Descrizione
Il gestore eventi visualizza un risultato in base al valore del working set di proprietà nella pagina delle opzioni. Utilizza il metodo di GetDialogPage con il risultato in modo esplicito esegue il cast nel tipo personalizzato della pagina delle opzioni per accedere alle proprietà esposte dalla pagina.
Nel caso di un progetto compilato dal modello del pacchetto, chiamare questa funzione dalla funzione di MenuItemCallback per associarlo al comando predefinito aggiunto al menu di strumenti .
Codice
Private Sub ShowHelloWorld(ByVal sender As Object, ByVal e As EventArgs)
Dim hw = TryCast(GetDialogPage(GetType(HelloWorldOptions)), HelloWorldOptions)
If hw.HelloWorld = True Then
MessageBox.Show("Hello World!")
Else
MessageBox.Show("Goodbye.")
End If
End Sub
private void ShowHelloWorld(object sender, EventArgs e)
{
var hw = GetDialogPage(typeof(HelloWorldOptions))
as HelloWorldOptions;
if (hw.HelloWorld == true)
{
MessageBox.Show("Hello World!");
}
else MessageBox.Show("Goodbye.");
}
Vedere anche
Concetti
Supporto di automazione per le pagine di opzioni
Per registrare pagine personalizzate di opzioni
Utilizzando le pagine di opzioni
Creando pagine di opzioni utilizzando l'automazione
Creando pagine di opzioni utilizzando gli assembly di interoperabilità