StaticResource-MarkuperweiterungStaticResource Markup Extension

Gibt einen Wert für alle XAMLXAML Eigenschaftsattribut, das durch einen Verweis auf einen bereits definierten Ressource überprüfen.Provides a value for any XAMLXAML property attribute by looking up a reference to an already defined resource. Das Suchverhalten für diese Ressource ist analog zur Ladezeit-Suche, der nach Ressourcen gesucht werden, die zuvor aus dem Markup des aktuellen geladen wurden XAMLXAML sowie andere Anwendungsquellen, und diesen Ressourcenwert generiert die der Eigenschaftswert in den Laufzeit-Objekten.Lookup behavior for that resource is analogous to load-time lookup, which will look for resources that were previously loaded from the markup of the current XAMLXAML page as well as other application sources, and will generate that resource value as the property value in the run-time objects.

Verwendung von XAML-AttributenXAML Attribute Usage

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

Verwendung von XAML-ObjektelementenXAML Object Element Usage

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

XAML-WerteXAML Values

key Der Schlüssel für die angeforderte Ressource.The key for the requested resource. Dieser Schlüssel wurde ursprünglich zugewiesen, durch die X: Key Directive , wenn eine Ressource, die im Markup erstellt wurde, oder es bereitgestellt wurde die key -Parameter beim Aufrufen von ResourceDictionary.Add , wenn die Ressource im Code erstellt wurde.This key was initially assigned by the x:Key Directive if a resource was created in markup, or was provided as the key parameter when calling ResourceDictionary.Add if the resource was created in code.

HinweiseRemarks

Wichtig

Ein StaticResource dürfen nicht versuchen, einen Vorwärtsverweis auf eine Ressource, die definiert wird, stellen lexikalisch weiter innerhalb der XAMLXAML Datei.A StaticResource must not attempt to make a forward reference to a resource that is defined lexically further within the XAMLXAML file. Dies dennoch versuchen, wird nicht unterstützt, und auch wenn Sie ein solchen Verweis nicht fehlschlägt, versucht, den vorwärts gerichteten Verweis fallen eine Ladezeit zu Leistungseinbußen bei der internen Hashtabellen darstellt eine ResourceDictionary durchsucht werden.Attempting to do so is not supported, and even if such a reference does not fail, attempting the forward reference will incur a load time performance penalty when the internal hash tables representing a ResourceDictionary are searched. Passen Sie für optimale Ergebnisse die Zusammensetzung der Ressourcenwörterbücher, Vorwärtsverweise vermieden werden können.For best results, adjust the composition of your resource dictionaries such that forward references can be avoided. Wenn Sie einen Vorwärtsverweis nicht vermeiden können, verwenden Sie DynamicResource-Markuperweiterung stattdessen.If you cannot avoid a forward reference, use DynamicResource Markup Extension instead.

Das angegebene ResourceKey sollte entsprechen, eine vorhandene Ressource identifiziert, die mit einem X: Key Directive auf einer bestimmten Ebene in Ihrer Seite, Anwendung, die verfügbaren Steuerelementdesigns und externe Ressourcen oder Systemressourcen.The specified ResourceKey should correspond to an existing resource, identified with an x:Key Directive at some level in your page, application, the available control themes and external resources, or system resources. Die Ressourcensuche wird in dieser Reihenfolge.The resource lookup occurs in that order. Weitere Informationen zum Verhalten bei der Suche für statische und dynamische Ressourcen finden Sie unter XAML-Ressourcen.For more information about resource lookup behavior for static and dynamic resources, see XAML Resources.

Ein Ressourcenschlüssel kann eine beliebige Zeichenfolge, die in definierten werden die XamlName-Grammatik.A resource key can be any string defined in the XamlName Grammar. Ein Ressourcenschlüssel kann auch sein andere Objekttypen, z. B. eine Type.A resource key can also be other object types, such as a Type. Ein Type Schlüssel ist wesentlich, wie Steuerelemente mithilfe von Designs und einer impliziten formatiert werden können.A Type key is fundamental to how controls can be styled by themes, through an implicit style key. Weitere Informationen finden Sie unter Übersicht über das Erstellen von Steuerelementen.For more information, see Control Authoring Overview.

Die alternative deklaratives Mittel für die verweisen auf eine Ressource ist als eine DynamicResource-Markuperweiterung.The alternative declarative means of referencing a resource is as a DynamicResource Markup Extension.

Die Attributsyntax ist die mit dieser Markuperweiterung am häufigsten verwendete Syntax.Attribute syntax is the most common syntax used with this markup extension. Das Zeichenfolgentoken, das auf die StaticResource-Bezeichnerzeichenfolge folgt, wird als ResourceKey-Wert der zugrunde liegenden StaticResourceExtension-Erweiterungsklasse zugeordnet.The string token provided after the StaticResource identifier string is assigned as the ResourceKey value of the underlying StaticResourceExtension extension class.

StaticResource kann in Objektelementsyntax verwendet werden.StaticResource can be used in object element syntax. In diesem Fall geben Sie den Wert der ResourceKey Eigenschaft ist erforderlich.In this case, specifying the value of the ResourceKey property is required.

StaticResource kann zudem in einer ausführlichen Attributverwendung verwendet werden, die die ResourceKey-Eigenschaft als Eigenschaft=Wert-Paar angibt:StaticResource can also be used in a verbose attribute usage that specifies the ResourceKey property as a property=value pair:

<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.The verbose usage is often useful for extensions that have more than one settable property, or if some properties are optional. Da für StaticResource nur eine (erforderliche) Eigenschaft festgelegt werden kann, ist diese ausführliche Verwendung unüblich.Because StaticResource has only one settable property, which is required, this verbose usage is not typical.

In der WPFWPF XAMLXAML -prozessorimplementierung wird die Handhabung dieser Markuperweiterung wird definiert, indem die StaticResourceExtension Klasse.In the WPFWPF XAMLXAML processor implementation, the handling for this markup extension is defined by the StaticResourceExtension class.

StaticResource ist eine Markuperweiterung.StaticResource is a markup extension. Markuperweiterungen werden in der Regel implementiert, wenn Attributwerte mit Escapezeichen versehen werden müssen, damit diese nicht als literale Werte oder als Handlernamen betrachtet werden, und diese Anforderung eher global und nicht nur durch den Einsatz von Typkonvertern für bestimmte Typen oder Eigenschaften erfüllt werden soll.Markup extensions are typically implemented when there is a requirement to escape attribute values to be other than literal values or handler names, and the requirement is more global than just putting type converters on certain types or properties. Alle Markuperweiterungen in XAML verwenden die Zeichen XAMLXAML und XAMLXAML in der Attributsyntax. Dies ist die Konvention, anhand der ein XAML-Prozessor erkennt, dass das Attribut von einer Markuperweiterung verarbeitet werden muss.All markup extensions in XAMLXAML use the { and } characters in their attribute syntax, which is the convention by which a XAMLXAML processor recognizes that a markup extension must process the attribute. Weitere Informationen finden Sie unter Markuperweiterungen und WPF-XAML.For more information, see Markup Extensions and WPF XAML.

Siehe auchSee also