StaticResource – rozšíření značek

Poskytuje hodnotu pro libovolný atribut vlastnosti XAML vyhledáním odkazu na již definovaný prostředek. Vyhledávání tohoto prostředku je podobné vyhledávání v čase načítání, které bude hledat prostředky, které byly dříve načteny z revize aktuální stránky XAML a dalších zdrojů aplikací, a vygeneruje tuto hodnotu prostředku jako hodnotu vlastnosti v objektech za běhu.

Použití atributu XAML

<object property="{StaticResource key}" ... />  

Použití elementu objektu XAML

<object>  
  <object.property>  
<StaticResource ResourceKey="key" ... />  
  </object.property>  
</object>  

Hodnoty XAML

Hodnota Popis
key Klíč požadovaného prostředku. Tento klíč byl původně přiřazen direktivou x:Key, pokud byl prostředek vytvořen v kódu nebo byl zadán jako key parametr při voláníResourceDictionary.Add, pokud byl prostředek vytvořen v kódu.

Poznámky

Důležité

Nesmí StaticResource se pokoušet o předání odkazu na prostředek, který je definován lexicky dále v souboru XAML. Pokus o provedení této akce není podporován, a i když takový odkaz selže, při pokusu o předání odkazu dojde při hledání interních tabulek hash představujících ResourceDictionary prohledání interních tabulek hash k vypršení doby načítání. Nejlepších výsledků dosáhnete tak, že upravíte složení slovníků prostředků tak, aby se zabránilo přeposlání odkazů. Pokud se nemůžete vyhnout přeposílání odkazu, použijte místo toho rozšíření značek DynamicResource.

Zadaná ResourceKey hodnota by měla odpovídat existujícímu prostředku identifikovanému direktivou x:Key na určité úrovni na stránce, aplikaci, dostupných motivech ovládacích prvků a externích prostředcích nebo systémových prostředcích. Vyhledávání prostředků probíhá v daném pořadí. Další informace o chování vyhledávání prostředků pro statické a dynamické prostředky naleznete v tématu Prostředky XAML.

Klíč prostředku může být libovolný řetězec definovaný v jazyce XamlName Grammar. Klíč prostředku může být také jiné typy objektů, například Type. Klíčem Type je základní způsob, jakým můžou být ovládací prvky stylovány motivy prostřednictvím implicitního klíče stylu. Další informace najdete v tématu Přehled vytváření ovládacích prvků.

Alternativní deklarativní způsob odkazování na prostředek je jako rozšíření značek DynamicResource.

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 StaticResource je přiřazen jako ResourceKey hodnota podkladové StaticResourceExtension třídy rozšíření.

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

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

<object property="{StaticResource ResourceKey=key}" ... />  

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 StaticResource , ž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 StaticResourceExtension třídou.

StaticResource 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é