Bagikan melalui


Cara: Menggunakan Kamus Sumber Daya Cakupan Aplikasi

Contoh ini menunjukkan cara menentukan dan menggunakan kamus sumber daya kustom cakupan aplikasi.

Contoh

Application mengekspos penyimpanan cakupan aplikasi untuk sumber daya bersama: Resources. Secara default, properti diinisialisasi Resources dengan instans jenis ResourceDictionary . Anda menggunakan instans ini saat mendapatkan dan mengatur properti cakupan aplikasi menggunakan Resources. Untuk informasi selengkapnya, lihat Cara: Mendapatkan dan Mengatur Sumber Daya Cakupan Aplikasi.

Jika Anda memiliki beberapa sumber daya yang Anda tetapkan menggunakan Resources, Anda dapat menggunakan kamus sumber daya kustom untuk menyimpan sumber daya tersebut dan mengaturnya Resources sebagai gantinya. Berikut ini menunjukkan cara Anda mendeklarasikan kamus sumber daya kustom menggunakan 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>

Menukar seluruh kamus sumber daya menggunakan Resources memungkinkan Anda mendukung tema cakupan aplikasi, di mana setiap tema dienkapsulasi oleh satu kamus sumber daya. Contoh berikut menunjukkan cara mengatur ResourceDictionary.

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

Berikut ini menunjukkan bagaimana Anda bisa mendapatkan sumber daya cakupan aplikasi dari kamus sumber daya yang diekspos oleh Resources di XAML.

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

Berikut ini menunjukkan bagaimana Anda juga bisa mendapatkan sumber daya dalam kode.

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

Ada dua pertimbangan yang harus dibuat saat menggunakan Resources. Pertama, kunci kamus adalah objek, jadi Anda harus menggunakan instans objek yang sama persis saat mengatur dan mendapatkan nilai properti. (Perhatikan bahwa kunci peka huruf besar/kecil saat menggunakan string.) Kedua, nilai kamus adalah objek, jadi Anda harus mengonversi nilai ke jenis yang diinginkan saat mendapatkan nilai properti.

Beberapa jenis sumber daya dapat secara otomatis menggunakan properti yang ditentukan oleh jenis sebagai kunci eksplisit, seperti Style jenis dan DataTemplate . Ini dapat mengambil alih nilai Anda x:Key . Untuk menjamin bahwa kunci Anda x:Key dihormati, nyatakan sebelum properti kunci eksplisit. Untuk informasi selengkapnya, lihat Gaya, DataTemplates, dan kunci implisit.

Baca juga