Compartir a través de


Compatibilidad con páginas opciones

Haga clic en Opciones en el menú de Herramientas abre el cuadro de diálogo de Opciones . Las opciones de este cuadro de diálogo se denominan colectivamente páginas opciones. El control de árbol en el panel de navegación incluye categorías de las opciones, y cada categoría tiene páginas de opciones. Al seleccionar una página, sus opciones aparecen en el panel derecho. Estas páginas permiten cambiar los valores de las opciones que determinan el estado de un Paquete.

Compatibilidad con páginas opciones

La clase de Package proporciona compatibilidad para crear páginas opciones y las categorías de las opciones. la clase de DialogPage implementa una página opciones.

la implementación predeterminada de DialogPage proporciona sus propiedades públicas a un usuario en una cuadrícula genérica de propiedades. Puede personalizar este comportamiento invalidando varios métodos en la página para crear una página opciones personalizada que tenga su propia interfaz de usuario (UI). Para obtener más información, vea tutorial: crear una página opciones.

La clase de DialogPage implementa IProfileManager, que proporciona la persistencia para páginas opciones y también para la configuración del usuario. Las implementaciones predeterminadas de los métodos de LoadSettingsFromStorage y de SaveSettingsToStorage conservan los cambios de propiedad en una sección de usuario del registro si la propiedad se puede convertir en una cadena y viceversa.

Ruta de acceso de registro de la página de opciones

De forma predeterminada, la ruta de acceso de registro de propiedades administradas por una página opciones se determina mediante la combinación UserRegistryRoot, la palabra DialogPage, y el nombre de tipo de clase de la página de opciones. Por ejemplo, una clase de página opciones podría ser definido como sigue.

Namespace Company.OptionsPage
    Public Class OptionsPageGeneral
        Inherits DialogPage
    End Class 
End Namespace
namespace Company.OptionsPage
{
    public class OptionsPageGeneral : DialogPage
    {
    }
}

Si UserRegistryRoot es \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.

La ruta de acceso de registro de la página de opciones en sí es determinada combinando ApplicationRegistryRoot, word, ToolsOptionsPages, y la categoría y el nombre de la página de opciones. Por ejemplo, si la página opciones personalizada tiene la categoría, mis páginas de opción, y ApplicationRegistryRoot es \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.

Herramientas/atributos y diseño de la página de opciones

El atributo de ProvideOptionPageAttribute determina la agrupación de páginas opciones personalizadas en categorías en el árbol de navegación del cuadro de diálogo de Opciones . El atributo de ProvideOptionPageAttribute asocia una página opciones al Paquete que proporciona la interfaz. Observe el fragmento de código siguiente:

<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

esto declara que MyPackage proporciona dos páginas opciones, OptionsPageGeneral y OptionsPageCustom. En el cuadro de diálogo de Opciones , las dos páginas opciones aparecen en la categoría de Las páginas de la opción como General y Personalizado, respectivamente.

atributos y diseño de la opción

La interfaz (UI) de usuario que la página proporciona determina la apariencia de opciones en una página opciones personalizada. El diseño, el etiquetar, y la descripción de opciones en una página opciones genérica están determinados por los atributos siguientes:

Observe el fragmento de código siguiente:

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; }

la opción de OptionInteger aparece en la página opciones como Opción completa en la categoría de mis opciones . Si la opción está seleccionada, la descripción, Mi opción completa, aparece en el cuadro de la descripción.

Páginas de opciones acceso de Otro paquete VSPackage

Un Paquete que hospeda y administra una página opciones se puede lograr mediante programación de otro Paquete utilizando el modelo de automatización. Por ejemplo, el siguiente código un VSPackage se registra como hospedar una página de la opción.

<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

El fragmento de código siguiente se obtiene el valor de OptionInteger de 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;

Cuando el atributo de ProvideOptionPageAttribute registra una página, la página se registra en la clave de AutomationProperties si el argumento de SupportsAutomation del atributo es true. Automatización examina esta entrada del Registro para buscar el paquete VSPackage asociado, y automatización podrá obtener acceso a la propiedad en la página opciones hospedada, en este caso, mi página de la cuadrícula.

La ruta de acceso de registro de la propiedad de automatización se determina mediante la combinación ApplicationRegistryRoot, word, AutomationProperties, y la categoría y el nombre de la página de opciones. Por ejemplo, si la página de opciones tiene la mi categoría category, el mi nombre de página de la cuadrícula, y 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

El nombre canónico, mi página de la cuadrícula de Category.My, es el valor de la subclave del nombre de esta clave.

Vea también

Tareas

tutorial: crear una página opciones

Conceptos

Ejemplos de extensibilidad de Visual Studio

Compatibilidad con las categorías de configuración

Otros recursos

estado de VSPackage