StaticResource Markup-tillägg
Ger ett värde för alla XAML-egenskapsattribut genom att leta upp en referens till en redan definierad resurs. Uppslagsbeteendet för den resursen motsvarar uppslagning vid inläsningstid, som letar efter resurser som tidigare har lästs in från märkningen av den aktuella XAML-sidan och andra applikationskällor, och som genererar resursvärdet som egenskapsvärde i körningstidens objekt.
XAML-attributanvändning
<object property="{StaticResource key}" ... />
Användning av XAML-objektelement
<object>
<object.property>
<StaticResource ResourceKey="key" ... />
</object.property>
</object>
XAML-värden
Värde | Beskrivning |
---|---|
key |
Nyckeln för den begärda resursen. Den här nyckeln tilldelades ursprungligen av x:Key Directive om en resurs skapades i markering eller angavs som parametern key när ResourceDictionary.Add anropades om resursen skapades i kod. |
Anmärkningar
Viktig
En StaticResource
får inte försöka göra en vidarereferens till en resurs som definieras lexikalt ytterligare i XAML-filen. Att göra det stöds inte, och även om en sådan referens fungerar kan ett försök att använda en framåt-referens leda till en prestandapåverkan vid laddningstid när de interna hashtabellerna som representerar en ResourceDictionary genomsöks. För bästa resultat justerar du sammansättningen av dina resursordlistor så att vidarebefordrade referenser kan undvikas. Om du inte kan undvika en referens för vidarebefordran använder du DynamicResource Markup Extension i stället.
Den angivna ResourceKey ska motsvara en befintlig resurs som identifieras med ett x:Key Directive på någon nivå på sidan, programmet, tillgängliga kontrollteman och externa resurser eller systemresurser. Resurssökningen sker i den ordningen. Mer information om resurssökningsbeteende för statiska och dynamiska resurser finns i XAML-resurser.
En resursnyckel kan vara valfri sträng som definieras i XamlName Grammar. En resursnyckel kan också vara andra objekttyper, till exempel en Type. En Type nyckel är grundläggande för hur kontroller kan utformas med teman, via en implicit formatnyckel. För mer information, se Kontrollredigeringsöversikt.
Det alternativa deklarativa sättet att referera till en resurs är som ett DynamicResource Markup Extension.
Attributsyntax är den vanligaste syntaxen som används med det här markeringstillägget. Den strängtoken som ges efter StaticResource
-identifierarsträngen tilldelas som ResourceKey värde i den underliggande StaticResourceExtension-tilläggsklassen.
StaticResource
kan användas i objektelementsyntax. I det här fallet krävs det att du anger värdet för egenskapen ResourceKey.
StaticResource
kan också användas i en utförlig attributanvändning som anger egenskapen ResourceKey som ett egenskap=värdepar:
<object property="{StaticResource ResourceKey=key}" ... />
Den utförliga användningen är ofta användbar för tillägg som har mer än en inställningsbar egenskap, eller om vissa egenskaper är valfria. Eftersom StaticResource
bara har en inställningsbar egenskap, vilket krävs, är den här utförliga användningen inte typisk.
I WPF XAML-processorimplementeringen definieras hanteringen för det här påläggstillägget av klassen StaticResourceExtension.
StaticResource
är ett tillägg för markering. Markeringstillägg implementeras vanligtvis när det finns ett krav på att escape-attributvärden ska vara andra än literalvärden eller hanterarnamn, och kravet är mer globalt än att bara placera typkonverterare på vissa typer eller egenskaper. Alla markup-tillägg i XAML använder tecknen { och } i attributsyntaxen, vilket är den konvention som en XAML-processor känner igen som ett markup-tillägg som måste bearbeta attributet. Mer information finns i Markup Extensions and WPF XAML.
Se även
.NET Desktop feedback