ThemeDictionary Markup-tillägg
Ger ett sätt för anpassade kontrollförfattare eller program som integrerar kontroller från tredje part att läsa in temaspecifika resursordlistor som ska användas i formateringen av kontrollen.
XAML-attributanvändning
<object property="{ThemeDictionary assemblyUri}" ... />
Användning av XAML-objektelement
<object>
<object.property>
<ThemeDictionary AssemblyName="assemblyUri"/>
<object.property>
<object>
XAML-värden
Värde | Beskrivning |
---|---|
assemblyUri |
Den enhetliga resursidentifieraren (URI) för sammansättningen som innehåller temainformation. Det här är vanligtvis en pack-URI som refererar till en sammansättning i det större paketet. Sammansättningsresurser och paket-URI:er förenklar distributionsproblem. För mer information, se Pack-URI:er i WPF. |
Anmärkningar
Det här tillägget är avsett att endast fylla i ett specifikt egenskapsvärde: ett värde för ResourceDictionary.Source.
Genom att använda det här tillägget kan du ange en enda sammansättning endast för resurser som innehåller vissa formatmallar som endast ska användas när Windows Aero-temat tillämpas på användarens system, andra format bara när Luna-temat är aktivt och så vidare. Med det här tillägget kan innehållet i en kontrollspecifik resursordlista automatiskt ogiltigförklaras och läsas in på nytt för att vara specifikt för ett annat tema när det behövs.
assemblyUri
-strängen (AssemblyName-egenskapsvärde) utgör grunden för en namngivningskonvention som identifierar vilken ordlista som ska användas för ett visst tema. Den ProvideValue logiken för ThemeDictionary
slutför konventionen genom att generera en enhetlig resursidentifierare (URI) som pekar på en viss temaordlistevariant som finns i en fördefinierad resurssammansättning. Att beskriva den här konventionen, eller temainteraktioner med allmän kontrollformatering och formatering på sida/programnivå som begrepp, beskrivs inte helt här. Det grundläggande scenariot för att använda ThemeDictionary
är att ange egenskapen Source för en ResourceDictionary
deklarerad på programnivå. När du anger en URI för sammansättningen via ett ThemeDictionary
-tillägg i stället för som en direkt URI, ger tilläggslogiken ogiltighetslogik som gäller när systemtemat ändras.
Attributsyntax är den vanligaste syntaxen som används med det här markeringstillägget. Strängtoken som anges efter ThemeDictionary
-identifierarsträngen tilldelas som värdet för AssemblyName av den underliggande ThemeDictionaryExtension-tilläggsklassen.
ThemeDictionary
kan också användas i objektelementsyntax. I det här fallet krävs det att du anger värdet för egenskapen AssemblyName.
ThemeDictionary
kan också användas i en utförlig attributanvändning som anger egenskapen Member som ett egenskap=värdepar:
<object property="{ThemeDictionary AssemblyName=assemblyUri}" ... />
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 ThemeDictionary
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 ThemeDictionaryExtension.
ThemeDictionary
ä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 markeringstillägg i XAML använder tecknen { och } i attributsyntaxen, vilket är den konvention genom vilken en XAML-processor känner igen att ett markeringstillägg ska bearbeta attributet. Mer information finns i Markup Extensions and WPF XAML.
Se även
.NET Desktop feedback