Postupy: Použití slovníku prostředků Application-Scope
Tento příklad ukazuje, jak definovat a používat vlastní slovník prostředků oboru aplikace.
Příklad
Application zveřejňuje úložiště rozsahu aplikace pro sdílené prostředky: Resources. Ve výchozím nastavení je vlastnost Resources inicializována instancí typu ResourceDictionary. Tuto instanci použijete při získání a nastavení vlastností oboru aplikace pomocí Resources. Další informace najdete v tématu Jak: Získat a nastavit zdroj Application-Scope.
Pokud máte více prostředků, které jste nastavili pomocí Resources, můžete místo toho použít vlastní slovník prostředků k uložení těchto prostředků a nastavení Resources s ním. Následující příklad ukazuje, jak deklarujete vlastní slovník prostředků pomocí 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>
Výměna celých slovníků prostředků pomocí Resources umožňuje podporovat témata v rozsahu celé aplikace, kde je každé téma zapouzdřeno v jednom slovníku prostředků. Následující příklad ukazuje, jak nastavit ResourceDictionary.
<!--Set the Application ResourceDictionary-->
<Application.Resources>
<ResourceDictionary Source="MyResourceDictionary.xaml" />
</Application.Resources>
Následující příklad ukazuje, jak získat prostředky oboru aplikace ze slovníku prostředků vystaveného Resources v XAML.
<!--Set the brush as a StaticResource from the ResourceDictionary-->
<Rectangle Name="Rect" Height="200" Width="100" Fill="{StaticResource ResourceKey=StandardSolidColorBrush}" />
Následující příklad ukazuje, jak můžete prostředky získat také v kódu.
//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")
Při použití Resourcesexistují dva aspekty. Za prvé, slovník klíč je objekt, takže při nastavení a získání hodnoty vlastnosti musíte použít přesně stejnou instanci objektu. (Klíč rozlišuje malá a velká písmena při použití řetězce.) Za druhé, hodnota ve slovníku
Některé typy prostředků mohou automaticky používat vlastnost definovanou typem jako explicitní klíč, například Style a typy DataTemplate. Může to přepsat hodnotu x:Key
. Pokud chcete zaručit, že se váš klíč x:Key
respektuje, deklarujte ho před explicitní vlastností klíče. Další informace naleznete v tématu Styly, objekty DataTemplates a implicitní klíče.
Viz také
.NET Desktop feedback