Delen via


Handleiding: een Application-Scope resource-woordenlijst gebruiken

In dit voorbeeld ziet u hoe u een aangepaste resourcewoordenlijst voor toepassingsbereik definieert en gebruikt.

Voorbeeld

Application onthult een toepassingsbreed archief voor gedeelde resources: Resources. De eigenschap Resources wordt standaard geïnitialiseerd met een exemplaar van het ResourceDictionary type. Je gebruikt dit exemplaar wanneer je eigenschappen binnen de toepassingsscope opvraagt en instelt met behulp van Resources. Voor meer informatie, zie Procedure: Een Application-Scope Resourceophalen en instellen.

Als u meerdere resources hebt die u instelt met Resources, kunt u in plaats daarvan een aangepaste resourcewoordenlijst gebruiken om deze resources op te slaan en in plaats daarvan Resources instellen. Hieronder ziet u hoe u een aangepaste resourcewoordenlijst declareert met behulp van 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>

Door hele resourcewoordenlijsten te wisselen met behulp van Resources kunt u toepassingsbereikthema's ondersteunen, waarbij elk thema wordt ingekapseld door één resourcewoordenlijst. In het volgende voorbeeld ziet u hoe u de ResourceDictionaryinstelt.

<!--Set the Application ResourceDictionary-->
<Application.Resources>
    <ResourceDictionary Source="MyResourceDictionary.xaml" />
</Application.Resources>

Hieronder ziet u hoe u resources binnen het toepassingsbereik kunt ophalen uit de resourcewoordenlijst die wordt weergegeven door Resources in XAML.

<!--Set the brush as a StaticResource from the ResourceDictionary-->
<Rectangle Name="Rect" Height="200" Width="100" Fill="{StaticResource ResourceKey=StandardSolidColorBrush}" />

Hieronder ziet u hoe u ook de resources in code kunt ophalen.

//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")

Er zijn twee overwegingen die u moet maken bij het gebruik van Resources. Eerst is het woordenboek sleutel een object, dus u moet exact hetzelfde objectexemplaar gebruiken bij het instellen en ophalen van een eigenschap. (Houd er rekening mee dat de sleutel hoofdlettergevoelig is wanneer u een tekenreeks gebruikt.) Ten tweede is de woordenlijst waarde een object, dus u moet de waarde converteren naar het gewenste type wanneer u een eigenschapswaarde ophaalt.

Sommige resourcetypen kunnen automatisch een eigenschap gebruiken die door het type is gedefinieerd als een expliciete sleutel, zoals de typen Style en DataTemplate. Hierdoor wordt uw x:Key waarde mogelijk overschreven. Als u wilt garanderen dat uw x:Key sleutel wordt gerespecteerd, declareert u deze vóór de expliciete sleuteleigenschap. Zie Stijlen, DataTemplates en impliciete sleutelsvoor meer informatie.

Zie ook