Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt einen Wert für ein beliebiges XAML-Eigenschaftsattribut bereit, indem ein Verweis auf eine bereits definierte Ressource gesucht wird. Das Nachschlageverhalten für diese Ressource entspricht der Ladezeitsuche, die nach Ressourcen sucht, die zuvor aus dem Markup der aktuellen XAML-Seite sowie anderen Anwendungsquellen geladen wurden, und generiert diesen Ressourcenwert als Eigenschaftswert in den Laufzeitobjekten.
Verwendung von XAML-Attributen
<object property="{StaticResource key}" ... />
XAML-Objektelementverwendung
<object>
<object.property>
<StaticResource ResourceKey="key" ... />
</object.property>
</object>
XAML-Werte
Wert | BESCHREIBUNG |
---|---|
key |
Der Schlüssel für die angeforderte Ressource. Dieser Schlüssel wurde ursprünglich durch die x:Key-Anweisung zugewiesen, wenn eine Ressource in Markup erstellt wurde, oder wurde als key -Parameter beim Aufruf von ResourceDictionary.Add angegeben, wenn die Ressource in Code erstellt wurde. |
Bemerkungen
Von Bedeutung
StaticResource
darf nicht versucht werden, auf eine Ressource einen Vorwärtsverweis vorzunehmen, die weiter hinten in der XAML-Datei lexikalisch definiert wurde. Der Versuch, dies zu tun, wird nicht unterstützt, und selbst wenn ein solcher Verweis nicht fehlschlägt, führt der Versuch des Vorwärtsverweises zu einer Leistungseinbuße bei der Ladezeit, wenn die internen Hashtabellen, die eine ResourceDictionary Darstellung darstellen, durchsucht werden. Um optimale Ergebnisse zu erzielen, passen Sie die Zusammensetzung Ihrer Ressourcenwörterbücher so an, dass Vorwärtsverweise vermieden werden können. Wenn Sie einen Vorwärtsverweis nicht vermeiden können, verwenden Sie stattdessen die DynamicResource-Markuperweiterung .
Der angegebene ResourceKey sollte einer vorhandenen Ressource entsprechen, die mit einer x:Key-Direktive auf irgendeiner Ebene Ihrer Seite, Anwendung, den verfügbaren Steuerelement-Themen und externen Ressourcen oder Systemressourcen identifiziert wird. Die Ressourcensuche erfolgt in dieser Reihenfolge. Weitere Informationen zum Ressourcensuchverhalten für statische und dynamische Ressourcen finden Sie unter XAML-Ressourcen.
Ein Ressourcenschlüssel kann eine beliebige Zeichenfolge sein, die in der XamlName-Grammatik definiert ist. Ein Ressourcenschlüssel kann auch andere Objekttypen sein, z. B. ein Type. Ein Type Schlüssel ist grundlegend dafür, wie Steuerelemente durch Designs mithilfe eines impliziten Stilschlüssels gestaltet werden können. Weitere Informationen finden Sie unter Übersicht über das Erstellen von Steuerelementen.
Die alternative deklarative Methode zum Verweisen auf eine Ressource ist eine DynamicResource-Markuperweiterung.
Attributsyntax ist die am häufigsten verwendete Syntax für diese Markuperweiterung. Das Zeichenfolgentoken, das auf die StaticResource
-Bezeichnerzeichenfolge folgt, wird als ResourceKey-Wert der zugrunde liegenden StaticResourceExtension-Erweiterungsklasse zugeordnet.
Das StaticResource
kann in der Objektelementsyntax verwendet werden. In diesem Fall ist die Angabe des Werts der ResourceKey-Eigenschaft erforderlich.
StaticResource
kann zudem in einer ausführlichen Attributverwendung verwendet werden, die die ResourceKey-Eigenschaft als Eigenschaft=Wert-Paar angibt:
<object property="{StaticResource ResourceKey=key}" ... />
Die ausführliche Verwendung ist häufig hilfreich, wenn für eine Erweiterung mehr als eine Eigenschaft festgelegt werden kann oder wenn bestimmte Eigenschaften optional sind. Da für StaticResource
nur eine (erforderliche) Eigenschaft festgelegt werden kann, ist diese ausführliche Verwendung unüblich.
In der WPF-XAML-Prozessorimplementierung wird die Behandlung dieser Markup-Erweiterung durch die StaticResourceExtension-Klasse definiert.
StaticResource
ist eine Markup-Erweiterung. Markuperweiterungen werden typischerweise implementiert, wenn Attributwerte von den reinen Literalwerten oder Handlernamen abweichen müssen und diese Anforderung globaler ist, als nur Typkonverter für bestimmte Typen oder Eigenschaften zu verwenden. Alle Markuperweiterungen in XAML verwenden die Zeichen {und } in ihrer Attributsyntax. Dies ist die Konvention, mit der ein XAML-Prozessor erkennt, dass eine Markuperweiterung das Attribut verarbeiten muss. Weitere Informationen finden Sie unter Markuperweiterungen und WPF-XAML.
Siehe auch
.NET Desktop feedback