ThemeDictionary – rozšíření značek

Poskytuje způsob, jak pro autory vlastních ovládacích prvků nebo aplikace, které integrují ovládací prvky třetích stran, načíst slovníky prostředků specifické pro motiv, které se mají použít ve stylu ovládacího prvku.

Použití atributu XAML

<object property="{ThemeDictionary assemblyUri}" ... />  

Použití elementu objektu XAML

<object>  
  <object.property>  
    <ThemeDictionary AssemblyName="assemblyUri"/>  
  <object.property>  
<object>  

Hodnoty XAML

Hodnota Popis
assemblyUri Identifikátor URI (Uniform Resource Identifier) sestavení, který obsahuje informace o motivu. Obvykle se jedná o identifikátor URI balíčku, který odkazuje na sestavení ve větším balíčku. Prostředky sestavení a identifikátory URI balíčků zjednodušují problémy s nasazením. Další informace naleznete v tématu Identifikátory URI balíčků ve WPF.

Poznámky

Toto rozšíření je určeno k vyplnění pouze jedné konkrétní hodnoty vlastnosti: hodnota pro ResourceDictionary.Source.

Pomocí tohoto rozšíření můžete zadat pouze jedno sestavení prostředků, které obsahuje některé styly, které se mají použít pouze v případě, že se motiv Windows Aero použije v systému uživatele, jiné styly pouze v případě, že je motiv Luna aktivní atd. Pomocí tohoto rozšíření lze obsah slovníku prostředků specifického pro ovládací prvek automaticky zneplatnit a znovu načíst, aby byl v případě potřeby specifický pro jiný motiv.

Řetězec assemblyUri (AssemblyName hodnota vlastnosti) tvoří základ konvence pojmenování, která identifikuje slovník, který se vztahuje na konkrétní motiv. Logika ProvideValue pro ThemeDictionary dokončení konvence vygenerováním identifikátoru URI (Uniform Resource Identifier), který odkazuje na konkrétní variantu slovníku motivu, jak je obsaženo v předkompilované sestavení prostředků. Popis této konvence nebo interakce motivů s obecnými styly ovládacích prvků a styly na úrovni stránky/aplikace jako konceptem se zde plně nezabývá. Základním scénářem použití ThemeDictionary je určení Source vlastnosti ResourceDictionary deklarované na úrovni aplikace. Pokud zadáte identifikátor URI sestavení prostřednictvím ThemeDictionary rozšíření, nikoli jako přímý identifikátor URI, logika rozšíření poskytne logiku zneplatnění, která se použije při každé změně systémového motivu.

Nejčastějším typem syntaxe, která se používá u tohoto rozšíření značek, je syntaxe atributu. Řetězcový token poskytnutý po řetězci identifikátoru ThemeDictionary je přiřazen jako AssemblyName hodnota podkladové ThemeDictionaryExtension třídy rozšíření.

ThemeDictionary lze také použít v syntaxi elementu objektu. V tomto případě je nutné zadat hodnotu AssemblyName vlastnosti.

ThemeDictionary lze také použít ve podrobném použití atributu Member , který určuje vlastnost jako parametr property=value pair:

<object property="{ThemeDictionary AssemblyName=assemblyUri}" ... />  

Použití podrobné syntaxe je často užitečné pro rozšíření, která mají více než jednu nastavitelnou vlastnost, nebo v případě, že jsou některé vlastnosti volitelné. Vzhledem k tomu ThemeDictionary , že má pouze jednu nastavenou vlastnost, která je povinná, toto podrobné použití není typické.

V implementaci procesoru WPF XAML je zpracování tohoto rozšíření značek definováno ThemeDictionaryExtension třídou.

ThemeDictionary je rozšíření značek. Rozšíření značek jsou obvykle implementována v případě požadavku, aby díky použití řídicí sekvence mohly být hodnoty atributů něčím jiným než literálními hodnotami nebo názvy obslužných rutin, a tento požadavek má tak rozsáhlou platnost, že nestačí jednoduše použít převaděče typů pro určité typy nebo vlastnosti. Všechna rozšíření značek v XAML používají {a } znaků v syntaxi atributu, což je konvence, kterou procesor XAML rozpozná, že rozšíření značek musí zpracovat atribut. Další informace naleznete v tématu Rozšíření značek a WPF XAML.

Viz také