Možnosti a stránky Možnosti
Kliknutím na Možnosti v nabídce Nástroje otevřete dialogové okno Možnosti. Možnosti v tomto dialogovém okně se souhrnně označují jako stránky možností. Ovládací prvek strom v navigačním podokně obsahuje kategorie možností a každá kategorie má stránky možností. Když vyberete stránku, její možnosti se zobrazí v pravém podokně. Tyto stránky umožňují změnit hodnoty možností, které určují stav balíčku VSPackage.
Podpora stránek možností
Třída Package poskytuje podporu pro vytváření stránek možností a kategorií možností. Třída DialogPage implementuje stránku možností.
Výchozí implementace DialogPage nabízí uživatelům veřejné vlastnosti v obecné mřížce vlastností. Toto chování můžete přizpůsobit přepsáním různých metod na stránce a vytvořit vlastní stránku možností, která má vlastní uživatelské rozhraní. Další informace naleznete v tématu Vytvoření stránky Možnosti.
Třída DialogPage implementuje IProfileManager, která poskytuje trvalost pro stránky možností a také pro uživatelská nastavení. Výchozí implementace LoadSettingsFromStorage a SaveSettingsToStorage metody zachovávají změny vlastnosti v části uživatele registru, pokud lze vlastnost převést na a z řetězce.
Cesta registru stránky Možnosti
Ve výchozím nastavení je cesta registru vlastností spravovaných stránkou možností určena kombinováním UserRegistryRoot, slovEm DialogPage a názvem typu třídy stránky možnosti. Třída stránky možností může být například definována následujícím způsobem.
Pokud je HKEY_CURRENT_USER UserRegistryRoot \Software\Microsoft\VisualStudio\8.0Exp, pak název vlastnosti a dvojice hodnot jsou podklíče HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\DialogPage\Company.OptionsPageGeneral.
Cesta registru samotné stránky možností je určena kombinováním ApplicationRegistryRootslova, ToolsOptionsPages a kategorie a název stránky možností. Pokud má stránka Vlastní možnosti například kategorii Moje stránky možností a ApplicationRegistryRoot je HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp, stránka možností má klíč registru, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp\ToolsOptionsPages\My Option Pages\Custom.
Nástroje/Možnosti – atributy a rozložení stránky
Atribut ProvideOptionPageAttribute určuje seskupení vlastních stránek možností do kategorií v navigačním stromu dialogového okna Možnosti . Atribut ProvideOptionPageAttribute přidruží stránku možností k balíčku VSPackage, který poskytuje rozhraní. Předpokládejme následující fragment kódu:
[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
Tato deklarace deklaruje, že MyPackage poskytuje dvě stránky možností, OptionsPageGeneral a OptionsPageCustom. V dialogovém okně Možnosti se obě stránky možností zobrazí v kategorii Moje stránky možností jako Obecné a Vlastní.
Atributy a rozložení možnosti
Uživatelské rozhraní, které stránka poskytuje, určuje vzhled možností na stránce vlastních možností. Rozložení, popisky a popis možností na stránce obecných možností jsou určeny následujícími atributy:
CategoryAttribute určuje kategorii možnosti.
DisplayNameAttribute určuje zobrazovaný název možnosti.
DescriptionAttribute určuje popis možnosti.
Poznámka:
Ekvivalentní atributy, SRCategory, LocDisplayName a SRDescription, používají řetězcové prostředky pro lokalizaci a jsou definovány v ukázce spravovaného projektu.
Předpokládejme následující fragment kódu:
Možnost OptionInteger se zobrazí na stránce možností jako celočíselná možnost v kategorii Moje možnosti . Pokud je tato možnost vybraná, zobrazí se v poli popis popis.
Přístup ke stránkám možností z jiného balíčku VSPackage
Balíček VSPackage, který hostuje a spravuje stránku možností, je možné programově přistupovat z jiného balíčku VSPackage pomocí modelu automatizace. Například v následujícím kódu je balíček VSPackage zaregistrovaný jako hostování stránky možností.
[ProvideOptionPage(typeof(MyOptionPage), "My Category", "My Grid Page", 0, 0, true)]
[Guid("6bb6942e-014c-489e-a612-a935680f703d")]
public sealed class MyToolsOptions : Package
Následující fragment kódu získá hodnotu OptionInteger z 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 Když atribut zaregistruje stránku možností, stránka se zaregistruje pod klíčem AutomationProperties, pokud SupportsAutomation
je true
argument atributu . Automatizace zkontroluje tuto položku registru, aby našla přidruženou sadu VSPackage, a automatizace pak přistupuje k vlastnosti prostřednictvím stránky hostovaných možností, v tomto případě My Grid Page.
Cesta registru vlastnosti automatizace je určena kombinováním ApplicationRegistryRootslova, AutomationProperties a kategorie a názvu stránky možností. Pokud má například stránka možností kategorii Moje kategorie, název stránky mřížky a ApplicationRegistryRootHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp, pak vlastnost automatizace má klíč registru, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp\AutomationProperties\My Category\My Grid Page.
Poznámka:
Kanonický název Moje Category.My Stránka mřížky je hodnota podklíče Názvu tohoto klíče.