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:
CategoryAttribute determina la categoría de la opción.
DisplayNameAttribute determina el nombre para mostrar de la opción.
DescriptionAttribute determina la descripción de la opción.
Nota
Los atributos equivalentes, SRCategory, LocDisplayName, y SRDescription, recursos de cadena de uso para la localización y se definen en ejemplo de proyectos administrados.
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