Megosztás a következőn keresztül:


Útmutató: Application-Scope erőforrás-szótár használata

Ez a példa bemutatja, hogyan definiálhat és használhat alkalmazáshatókörű egyéni erőforrásszótárat.

példa

Application elérhetővé tesz egy alkalmazáshatókör-tárolót a megosztott erőforrásokhoz: Resources. Alapértelmezés szerint a Resources tulajdonság inicializálva van egy ResourceDictionary típusú példánnyal. Ezt a példányt akkor használja, amikor az alkalmazási hatókör tulajdonságait lekéri és beállítja a Resourceshasználatával. További információért tekintse meg: Útmutató: Application-Scope erőforrásbeolvasása és beállítása.

Több erőforrás esetén, amelyeket a Resources-val állított be, használhat helyette egy egyéni erőforrás-szótárt ezek tárolására, és ezzel állíthatja be a Resources-et. Az alábbiakban bemutatjuk, hogyan deklarálhat egyéni erőforrás-szótárat az XAML használatával.

<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>

A teljes erőforrás-szótárak Resources használatával való felcserélésével támogathatja az alkalmazás hatókörű témákat, ahol az egyes témákat egyetlen erőforrás-szótár foglalja össze. Az alábbi példa bemutatja, hogyan állíthatja be a ResourceDictionary.

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

Az alábbiakban azt mutatjuk be, hogyan szerezhet be alkalmazáshatókörű erőforrásokat az XAML-ben Resources által közzétett erőforrás-szótárból.

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

Az alábbiakban azt mutatjuk be, hogyan szerezheti be az erőforrásokat a kódban.

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

A Resourceshasználatakor két szempontot kell figyelembe venni. Először is, a szótár kulcs egy objektum, ezért pontosan ugyanazt az objektumpéldányt kell használnia, amikor tulajdonságértéket állít be vagy lekérdez. (Vegye figyelembe, hogy a kulcs sztring használata esetén a kis- és nagybetűk megkülönböztetik.) Másodszor, a szótár érték objektum, ezért a tulajdonságérték lekérésekor az értéket a kívánt típusra kell konvertálnia.

Egyes erőforrástípusok automatikusan használhatnak egy, a típus által meghatározott tulajdonságot explicit kulcsként, például a Style és DataTemplate típusokként. Ez felülírhatja a x:Key értékét. A x:Key kulcs tiszteletben tartásának biztosításához deklarálja azt a explicit kulcstulajdonság előtt. További információért lásd: Stílusok, DataTemplates és implicit kulcsok.

Lásd még