Rozšíření značek StaticResource
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í při načítání, které bude hledat prostředky, které byly dříve načteny z označení aktuální stránky XAML a dalších zdrojů aplikací, a vygeneruje hodnotu tohoto 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ý
StaticResource
se nesmí pokoušet o předání odkazu na prostředek, který je definován lexicky dále v souboru XAML. Pokus o provedení tohoto kroku 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 k vypršení časového limitu výkonu načítání. Nejlepších výsledků dosáhnete tak, že upravíte své slovníky prostředků, aby se zabránilo dopředným odkazům. Pokud se nemůžete vyhnout přeposlání odkazu, použijte místo toho rozšíření značek DynamicResource.
Zadané ResourceKey by mělo odpovídat existujícímu prostředku, který je identifikován direktivou x:Key na některé úrovni vaší stránky, aplikace, dostupných motivech ovládacích prvků, 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 XamlName Grammar. Klíč prostředku může být také jiné typy objektů, například Type. Klíč Type je základním prvkem, jak mohou být ovládací prvky stylovány motivy prostřednictvím implicitního stylového klíče. Další informace najdete v tématu Přehled vytváření ovládacích prvků.
Alternativní deklarativní prostředky odkazování na prostředek jsou ve formě DynamicResource Markup Extension.
Syntaxe atributu je nejběžnější syntaxe použitá s tímto rozšířením značek. Řetězcový token poskytnutý za řetězcem identifikátoru StaticResource
je přiřazen jako hodnota ResourceKey podkladové třídy rozšíření StaticResourceExtension.
StaticResource
lze použít v syntaxi elementu objektu. V tomto případě je vyžadována hodnota vlastnosti ResourceKey.
StaticResource
lze také použít v podrobném použití atributu, který určuje vlastnost ResourceKey jako pár vlastnost=hodnota.
<object property="{StaticResource ResourceKey=key}" ... />
Podrobné použití je často užitečné pro rozšíření, která mají více než jednu nastavitelnou vlastnost, nebo pokud jsou některé vlastnosti volitelné. Vzhledem k tomu, že StaticResource
má pouze jednu nastavitelnou vlastnost, která je povinná, není toto podrobné použití typické.
V implementaci procesoru WPF XAML je zpracování tohoto rozšíření značek definováno třídou StaticResourceExtension.
StaticResource
je rozšíření značek. Rozšíření značek se obvykle implementují, pokud je potřeba, aby hodnoty atributů byly jiné než literální hodnoty nebo názvy obslužných rutin, a požadavek je obecnější než pouhé vkládání převaděčů typů na určité typy nebo vlastnosti. Všechna rozšíření značek v XAML používají znaky { a } ve své syntaxi atributů, což je konvence, podle které 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é
.NET Desktop feedback