Sdílet prostřednictvím


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.

namespace Company.OptionsPage
{
    public class OptionsPageGeneral : DialogPage
    {
    }
}

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:

    [Category("My Options")]
    [DisplayName("Integer Option")]
    [Description("My integer option")]
    public int OptionInteger { get; set; }
    

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 trueargument 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.