Supporto per le pagine di opzioni
Fare clic opzioni scegliere dal menu di strumenti visualizzata la finestra di dialogo di opzioni . Le opzioni di questa finestra di dialogo sono definite collettivamente pagine di opzioni. Il controllo di struttura ad albero nel riquadro di navigazione sono incluse le categorie di opzioni e ogni categoria ha pagine di opzioni. Quando si seleziona una pagina, le opzioni visualizzate nel riquadro di destra. Queste pagine consentono di modificare i valori delle opzioni che determinano lo stato di un VSPackage.
Supporto per le pagine di opzioni
La classe di Package fornisce il supporto per la creazione di pagine di opzioni e categorie di opzioni. la classe di DialogPage implementa una pagina di opzioni.
L'implementazione predefinita di DialogPage offre le proprietà pubbliche a un utente in una griglia generica delle proprietà. È possibile personalizzare questo comportamento eseguendo l'override dei diversi metodi nella pagina per creare una pagina delle opzioni personalizzata che dispone della propria interfaccia (UI) utente. Per ulteriori informazioni, vedere procedura dettagliata: creare una pagina di opzioni.
La classe di DialogPage implementa IProfileManager, che fornisce la persistenza per le pagine di opzioni e anche per le impostazioni utente. Le implementazioni predefinite dei metodi di SaveSettingsToStorage e di LoadSettingsFromStorage persistono la proprietà si effettua una sezione dell'utente del Registro di sistema se la proprietà può essere convertita in e da una stringa.
Percorso del Registro Di Sistema della pagina di opzioni
Per impostazione predefinita, il percorso del Registro di sistema delle proprietà gestite da una pagina delle opzioni è determinato combinando UserRegistryRoot, la parola DialogPage e il nome del tipo della classe della pagina di opzioni. Ad esempio, una classe delle pagine di opzioni potrebbe essere definita come segue.
Namespace Company.OptionsPage
Public Class OptionsPageGeneral
Inherits DialogPage
End Class
End Namespace
namespace Company.OptionsPage
{
public class OptionsPageGeneral : DialogPage
{
}
}
Se UserRegistryRoot è \Software\Microsoft\VisualStudio\8.0Exp, then the property name and value pairs are subkeys of HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\DialogPage\Company.OptionsPage.OptionsPageGeneral HKEY_CURRENT_USER.
Il percorso della pagina di opzioni stesso del Registro di sistema è determinato combinando ApplicationRegistryRoot, la parola, ToolsOptionsPages e le opzioni della categoria e il nome. Ad esempio, se la pagina personalizzata di opzioni dispone della categoria, le mie pagine di opzione e ApplicationRegistryRoot è \SOFTWARE\Microsoft\VisualStudio\8.0Exp, then the options page has the registry key, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp\ToolsOptionsPages\My Option Pages\Custom HKEY_LOCAL_MACHINE.
Gli strumenti e opzioni degli attributi e del layout
L'attributo di ProvideOptionPageAttribute determina il raggruppamento delle pagine personalizzate di opzioni in categorie nella struttura ad albero di navigazione della finestra di dialogo di opzioni . L'attributo di ProvideOptionPageAttribute associa una pagina di opzioni con il package VS che fornisce l'interfaccia. Si consideri il frammento di codice riportato di seguito.
<ProvideOptionPage(GetType(OptionsPageGeneral), "My Option Pages", "General", 101, 106, True),
ProvideOptionPage(GetType(OptionsPageCustom), "My Option Pages", "Custom", 101, 107, True),
Guid("B0002DC2-56EE-4931-93F7-70D6E9863940")>
Public Class MyPackage
Inherits Package
[ProvideOptionPage(typeof(OptionsPageGeneral),"My Option Pages", "General", 101, 106, true)]
[ProvideOptionPage(typeof(OptionsPageCustom), "My Option Pages", "Custom", 101, 107, true)]
[Guid("B0002DC2-56EE-4931-93F7-70D6E9863940")]
public class MyPackage : Package
Ciò indica che MyPackage fornisce due pagine, OptionsPageGeneral e OptionsPageCustom di opzioni. Nella finestra di dialogo di opzioni , entrambe le pagine di opzioni sono visualizzate nella categoria di Le mie pagine di opzione come Generale e Personalizzati, rispettivamente.
attributi e layout di opzione
L'interfaccia utente (UI) della pagina garantisce determina l'aspetto delle opzioni in una pagina personalizzata di opzioni. Il layout, il contrassegno e la descrizione delle opzioni in una pagina generica di opzioni sono determinate dai seguenti attributi:
CategoryAttribute determina la categoria dell'opzione.
DisplayNameAttribute determina il nome visualizzato dell'opzione.
DescriptionAttribute determina la descrizione dell'opzione.
Nota
Gli attributi equivalenti, SRCategory, LocDisplayName e SRDescription, risorse di tipo stringa di utilizzo per la localizzazione e sono definiti in esempio gestito di progetto.
Si consideri il frammento di codice riportato di seguito.
Private _optionInt As Integer
<Category("My Options"),
DisplayName("Integer Option"),
Description("My integer option")>
Public Property OptionInteger() As Integer
Get
Return _optionInt
End Get
Set(ByVal value As Integer)
_optionInt = value
End Set
End Property
[Category("My Options")]
[DisplayName("Integer Option")]
[Description("My integer option")]
public int OptionInteger { get; set; }
L'opzione di OptionInteger viene visualizzato nella pagina di opzioni come opzione Integer nella categoria di Le mie opzioni . Se l'opzione è selezionata, la descrizione, Dell'opzione Integer, viene visualizzato nella casella di descrizione.
Accedere alle pagine di opzioni da un altro package VS
Un package VS che ospita e gestisce una pagina delle opzioni possibile controllare a livello di codice accessibile da un altro package VS tramite il modello di automazione. Nel codice seguente, ad esempio un VSPackage è registrato come ospitare una pagina di opzione.
<ProvideOptionPage(GetType(MyOptionPage), "My Category", "My Grid Page", 0, 0, True)>
<Guid("6bb6942e-014c-489e-a612-a935680f703d")>
Public NotInheritable Class MyToolsOptions
Inherits Package
[ProvideOptionPage(typeof(MyOptionPage), "My Category", "My Grid Page", 0, 0, true)]
[Guid("6bb6942e-014c-489e-a612-a935680f703d")]
public sealed class MyToolsOptions : Package
Nel frammento di codice ottiene il valore di OptionInteger da MyOptionPage:
Dim dte As DTE = CType(GetService(GetType(DTE)), DTE)
Dim props As EnvDTE.Properties = dte.get_Properties("My Category", "My Grid Page")
Dim n As Integer = CInt(Fix(props.Item("OptionInteger").Value))
DTE dte = (DTE)GetService(typeof(DTE));
EnvDTE.Properties props = dte.get_Properties("My Category", "My Grid Page");
int n = (int)props.Item("OptionInteger").Value;
Quando l'attributo di ProvideOptionPageAttribute registra una pagina delle opzioni, la pagina viene registrata con la chiave AutomationProperties se l'argomento di SupportsAutomation dell'attributo è true. L'automazione esamina questa voce del Registro di sistema per individuare il package VS associato e l'automazione accede quindi alla proprietà tramite la pagina di hosting di opzioni, in questo caso, con la pagina della griglia.
Il percorso del Registro di sistema di proprietà di automazione è determinato combinando ApplicationRegistryRoot, la parola, AutomationProperties e le opzioni della categoria e il nome. Ad esempio, se la pagina delle opzioni contiene con la categoria di categoria, my nome della pagina della griglia e ApplicationRegistryRoot, \SOFTWARE\Microsoft\VisualStudio\8.0Exp, then the automation property has the registry key, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp\AutomationProperties\My Category\My Grid Page HKEY_LOCAL_MACHINE.
Nota
Il nome canonico, con la pagina della griglia di Category.My, è il valore della sottochiave del nome di questa chiave.
Vedere anche
Attività
procedura dettagliata: creare una pagina di opzioni
Concetti
Esempi di estensibilità di Visual Studio
Supporto per le categorie di impostazioni