Sdílet prostřednictvím


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 je objektem, takže budete muset převést tuto hodnotu na požadovaný typ při získávání hodnoty vlastnosti.

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é