Параметры и страницы параметров
В меню "Сервис" откроется диалоговое окно "Параметры". Параметры в этом диалоговом окне совместно называются страницами параметров. Элемент управления "Дерево" в области навигации включает категории параметров, а каждая категория имеет страницы параметров. При выборе страницы его параметры отображаются в правой области. Эти страницы позволяют изменять значения параметров, определяющих состояние VSPackage.
Поддержка страниц параметров
Класс Package предоставляет поддержку создания страниц параметров и категорий параметров. Класс DialogPage реализует страницу параметров.
Реализация по умолчанию DialogPage предоставляет общедоступные свойства пользователю в универсальной сетке свойств. Это поведение можно настроить, переопределив различные методы на странице, чтобы создать страницу настраиваемых параметров с собственным пользовательским интерфейсом (пользовательский интерфейс). Дополнительные сведения см. в разделе "Создание страницы параметров".
Класс DialogPage реализует IProfileManager, который обеспечивает сохраняемость страниц параметров, а также для параметров пользователя. Реализации LoadSettingsFromStorage SaveSettingsToStorage свойств по умолчанию сохраняются в пользовательском разделе реестра, если свойство можно преобразовать в строку и из нее.
Путь к реестру страниц параметров
По умолчанию путь реестра свойств, управляемых страницей параметров, определяется объединением UserRegistryRoot, словом DialogPage и именем типа класса страницы параметров. Например, класс страницы параметров можно определить следующим образом.
Если задано UserRegistryRoot значение HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp, то пары свойств и значений являются подразделами HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\DialogPage\Company.OptionsPage.OptionsPageGeneral.
Путь к реестру самой страницы параметров определяется объединением ApplicationRegistryRootслов, ToolsOptionsPages, а также категорией страниц и именем страницы параметров. Например, если на странице "Настраиваемые параметры" есть категория", "Мои страницы параметров", а ApplicationRegistryRoot также HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp, страница параметров содержит раздел реестра, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp\ToolsOptionsPages\My Option Pages\Custom.
Атрибуты страницы "Сервис" и "Параметры" и "Макет"
Атрибут ProvideOptionPageAttribute определяет группирование страниц настраиваемых параметров в категории в дереве навигации диалогового окна "Параметры ". Атрибут ProvideOptionPageAttribute связывает страницу параметров с VSPackage, предоставляющей интерфейс. Рассмотрим следующий фрагмент кода:
[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
Это объявляет, что MyPackage предоставляет две страницы параметров, OptionsPageGeneral и OptionsPageCustom. В диалоговом окне "Параметры" оба параметра отображаются в категории "Мои страницы параметров" в качестве общего и настраиваемого соответственно.
Атрибуты и макет параметров
Пользовательский интерфейс, который предоставляется на странице, определяет внешний вид параметров на странице настраиваемых параметров. Макет, метка и описание параметров на странице универсальных параметров определяются следующими атрибутами:
CategoryAttribute определяет категорию параметра.
DisplayNameAttribute определяет отображаемое имя параметра.
DescriptionAttribute определяет описание параметра.
Примечание.
Эквивалентные атрибуты, SRCategory, LocDisplayName и SRDescription используют строковые ресурсы для локализации и определяются в примере управляемого проекта.
Рассмотрим следующий фрагмент кода:
Параметр OptionInteger отображается на странице параметров в качестве целочисленного параметра в категории "Мои параметры ". Если выбран параметр, в поле описания отображается параметр "Мой целочисленный".
Доступ к страницам параметров из другого VSPackage
VSPackage, на котором размещается страница параметров и управляет ими, можно программным способом получить доступ из другого VSPackage с помощью модели автоматизации. Например, в следующем коде VSPackage регистрируется как размещение страницы параметров.
[ProvideOptionPage(typeof(MyOptionPage), "My Category", "My Grid Page", 0, 0, true)]
[Guid("6bb6942e-014c-489e-a612-a935680f703d")]
public sealed class MyToolsOptions : Package
Следующий фрагмент кода получает значение OptionInteger из MyOptionPage:
DTE dte = (DTE)GetService(typeof(DTE));
EnvDTE.Properties props = dte.get_Properties("My Category", "My Grid Page");
int n = (int)props.Item("OptionInteger").Value;
ProvideOptionPageAttribute Когда атрибут регистрирует страницу параметров, страница регистрируется в ключе AutomationProperties, если SupportsAutomation
аргумент атрибута равенtrue
. Автоматизация проверяет эту запись реестра, чтобы найти связанный VSPackage, а затем автоматизация обращается к свойству на странице размещенных параметров, в данном случае my Grid Page.
Путь к реестру свойства автоматизации определяется объединением ApplicationRegistryRoot, словом, AutomationProperties и категорией страниц и именем страницы параметров. Например, если страница параметров имеет категорию "Моя категория", имя страницы "Моя сетка" и ApplicationRegistryRoot"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp", свойство автоматизации имеет раздел реестра, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp\AutomationProperties\My Category\My Grid Page.
Примечание.
Каноническое имя страницы сетки my Category.My — это значение подраздела Name этого ключа.