Rozšíření značek DynamicResource
Poskytuje hodnotu pro jakýkoli atribut vlastnosti XAML tím, že tuto hodnotu odloží jako odkaz na definovaný prostředek. Chování vyhledávání pro daný prostředek je podobné vyhledávání za běhu.
Použití atributu XAML
<object property="{DynamicResource key}" ... />
Použití elementu vlastnosti XAML
<object>
<object.property>
<DynamicResource 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
DynamicResource
během počáteční kompilace vytvoří dočasný výraz, a proto odloží vyhledávání prostředků, dokud se k vytvoření objektu ve skutečnosti nevyžaduje požadovaná hodnota prostředku. To může být možné po načtení stránky XAML. Hodnota prostředku bude nalezena na základě hledání klíčů u všech aktivních slovníků prostředků počínaje aktuálním oborem stránky a nahradí se zástupným výrazem z kompilace.
Důležitý
Z hlediska priority vlastnosti závislosti je výraz DynamicResource
ekvivalentní pozici, kde se používá dynamický odkaz na prostředky. Pokud nastavíte místní hodnotu pro vlastnost, která dříve měla výraz DynamicResource
jako místní hodnotu, DynamicResource
se úplně odebere. Podrobnosti naleznete v tématu Priorita hodnoty vlastnosti závislosti.
Některé scénáře přístupu k prostředkům jsou zvláště vhodné pro DynamicResource
na rozdíl od statického rozšíření značek StaticResource. Informace o relativních výhodách a dopadech DynamicResource
a StaticResource
najdete v tématu Zdroje XAML .
Zadaná ResourceKey by měla odpovídat existujícímu prostředku určené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 a vyhledávání prostředků bude probíhat v tomto pořadí. Další informace o 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 jakýkoli řetězec definovaný v XamlName Grammar. Klíč prostředku může být také jiný typ objektu, například Type. Klíč Type je klíčový pro způsob, jakým mohou být ovládací prvky stylovány pomocí motivů. Další informace najdete v tématu Přehled vytváření ovládacích prvků.
Rozhraní API pro vyhledávání hodnot prostředků, jako jsou FindResource, se řídí stejnou logikou vyhledávání prostředků, jakou používá DynamicResource
.
Alternativní deklarativní prostředky odkazování na prostředek jsou jako StaticResource 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 DynamicResource
je přiřazen hodnotě ResourceKey základní třídy rozšíření DynamicResourceExtension.
DynamicResource
lze použít v syntaxi elementu objektu. V tomto případě je vyžadována hodnota vlastnosti ResourceKey.
DynamicResource
lze také použít v podrobném použití atributu, který určuje vlastnost ResourceKey jako pár vlastnost=hodnota:
<object property="{DynamicResource 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 DynamicResource
má pouze jednu nastavenou vlastnost, což je povinné, není toto podrobné použití typické.
V implementaci procesoru WPF XAML je zpracování tohoto značkovacího rozšíření definováno třídou DynamicResourceExtension.
DynamicResource
je rozšíření tagů. Rozšíření značek se obvykle implementují, pokud existuje požadavek uniknout hodnotám atributů, aby byly jiné než literální hodnoty nebo názvy obslužných rutin, a požadavek je globálnější než pouhé použití převodníků 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, díky níž 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é
- Zdroje XAML
- Zdroje a Code
- x:Key Direktiva
- XAML v WPF
- rozšíření značek a WPF XAML
- rozšíření značek StaticResource
- rozšíření značek a WPF XAML
.NET Desktop feedback