Postupy: Použití slovníku zdrojů rozsahu aplikace

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í Resources je vlastnost inicializována s instancí ResourceDictionary typu. Tuto instanci použijete při získání a nastavení vlastností oboru aplikace pomocí Resources. Další informace naleznete v tématu Postupy: Získání a nastavení prostředku oboru aplikace.

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 jeho nastavení Resources . 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>

Prohození celých slovníků prostředků pomocí Resources umožňuje podporovat motivy oboru aplikace, kde je každý motiv zapouzdřen jedním slovníkem 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í Resourcesje potřeba vzít v úvahu dva aspekty . Nejprve je klíč slovníku objekt, takže při nastavení a získání hodnoty vlastnosti musíte použít přesně stejnou instanci objektu. (Při použití řetězce se rozlišují malá a velká písmena.) Za druhé, hodnota slovníku je objekt, takže budete muset převést hodnotu na požadovaný typ při získání hodnoty vlastnosti.

Některé typy prostředků mohou automaticky používat vlastnost definovanou typem jako explicitní klíč, například typy Style a DataTemplate typy. To může vaši hodnotu přepsat x:Key . Pokud chcete zaručit, že se váš x:Key klíč respektuje, deklarujte ho před explicitní vlastností klíče. Další informace naleznete v tématu Styly, DataTemplates a implicitní klíče.

Viz také