Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här exemplet visar hur du definierar och använder en anpassad resursordlista för programomfattning.
Exempel
Application exponerar en applikationsomfattande lagring för delade resurser: Resources. Som standard initieras egenskapen Resources med en instans av ResourceDictionary typ. Du använder den här instansen när du hämtar och anger egenskaper för programomfattning med hjälp av Resources. För mer information, se Så här: Hämta och ställ in en Application-Scope Resurs.
Om du har flera resurser som du anger med Resourceskan du i stället använda en anpassad resursordlista för att lagra dessa resurser och ange Resources med den i stället. Följande visar hur du deklarerar en anpassad resursordlista med hjälp av XAML.
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<SolidColorBrush x:Key="StandardSolidColorBrush" Color="Blue" />
<LinearGradientBrush x:Key="StandardLinearGradientBrush" StartPoint="0.0,0.0" EndPoint="1.0,1.0">
<LinearGradientBrush.GradientStops>
<GradientStop Color="White" Offset="0" />
<GradientStop Color="Black" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</ResourceDictionary>
Genom att byta ut hela resursordlistor med hjälp av Resources kan du stödja teman för programomfattning, där varje tema kapslas in av en enda resursordlista. I följande exempel visas hur du anger ResourceDictionary.
<!--Set the Application ResourceDictionary-->
<Application.Resources>
<ResourceDictionary Source="MyResourceDictionary.xaml" />
</Application.Resources>
Följande visar hur du kan hämta programomfattande resurser från resursordlistan från Resources i XAML.
<!--Set the brush as a StaticResource from the ResourceDictionary-->
<Rectangle Name="Rect" Height="200" Width="100" Fill="{StaticResource ResourceKey=StandardSolidColorBrush}" />
Följande visar hur du också kan hämta resurserna i kod.
//Get a resource from the ResourceDictionary in code
Brush gradientBrush = (Brush)Application.Current.FindResource("StandardLinearGradientBrush");
'Get a resource from the ResourceDictionary in code
Dim GradientBrush As Brush = Application.Current.FindResource("StandardLinearGradientBrush")
Det finns två saker att tänka på när du använder Resources. Först är ordbokens nyckel ett objekt, så du måste använda exakt samma objektinstans när du både sätter och hämtar ett egenskapsvärde. (Observera att nyckeln är skiftlägeskänslig när du använder en sträng.) För det andra är ordlistan värdet ett objekt, så du måste konvertera värdet till önskad typ när du hämtar ett egenskapsvärde.
Vissa resurstyper kan automatiskt använda en egenskap som definieras av typen som en explicit nyckel, till exempel Style och DataTemplate typer. Detta kan åsidosätta ditt x:Key
värde. För att garantera att din x:Key
nyckel respekteras deklarerar du den före den explicita nyckelegenskapen. För mer information, se Formatmallar, DataTemplates och implicita nycklar.
Se även
.NET Desktop feedback