FrameworkElement.Resources Properti

Definisi

Mendapatkan kamus sumber daya yang ditentukan secara lokal. Di XAML, Anda dapat membuat item sumber daya sebagai elemen objek anak dari frameworkElement.Resources elemen properti, melalui sintaks pengumpulan implisit XAML.

ResourceDictionary Resources();

void Resources(ResourceDictionary value);
public ResourceDictionary Resources { get; set; }
var resourceDictionary = frameworkElement.resources;
frameworkElement.resources = resourceDictionary;
Public Property Resources As ResourceDictionary
<frameworkElement>
  <frameworkElement.Resources>
    oneOrMoreResourceElements
  </frameworkElement.Resources>
</frameworkElement>

Nilai Properti

Kamus sumber daya yang ditentukan secara lokal saat ini, di mana setiap sumber daya dapat diakses oleh kuncinya.

Contoh

Contoh ini memperlihatkan definisi XAML dari kamus Sumber Daya sederhana yang berisi satu item, DataTemplate.

<Grid.Resources>
  <DataTemplate x:Key="CBTemplate">
    <Grid>
      <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
      </Grid.ColumnDefinitions>
      <Image Grid.Column="0" Width="50" Height="50" 
        Source="{Binding Photo}" Stretch="Fill"/>
      <TextBlock Grid.Column="1" Text="{Binding Title}" 
        Margin="10" HorizontalAlignment="Left" FontSize="20"/>
    </Grid>
  </DataTemplate>
</Grid.Resources>
<GridView ItemTemplate="{StaticResource CBTemplate}" .../>

Menggunakan definisi sumber daya XAML dan referensi sumber daya adalah cara umum untuk menggunakan properti Sumber Daya. Sebagian besar waktu XAML saja dapat menangani skenario sumber daya umum. Tetapi Anda juga dapat menggunakan properti untuk mengakses API koleksi dan dengan demikian mengambil sumber daya dengan kode runtime, jika diperlukan oleh skenario Anda. Contoh ini menunjukkan akses kode ke properti Sumber Daya. Dalam contoh ini referensi properti Sumber Daya sebaris dan segera diikuti oleh penggunaan pengindeks yang mengambil item ResourceDictionary dengan kunci RainbowBrushstring . Perhatikan pemeran eksplisit; nilai yang dikembalikan untuk item dari ResourceDictionary selalu merupakan objek yang tidak diketik.

void MainPage::SetBGByResource(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
  Button^ b = safe_cast<Windows::UI::Xaml::Controls::Button^>(sender);
  b->Background = safe_cast<Windows::UI::Xaml::Media::Brush^>(this->Resources->Lookup("RainbowBrush"));
}
void SetBGByResource(object sender, RoutedEventArgs e)
{
  Button b = sender as Button;
  b.Background = (Brush)this.Resources["RainbowBrush"];
}
Private Sub SetBGByResource(sender As Object, e As RoutedEventArgs)
    Dim b As Button = TryCast(sender, Button)
    b.Background = DirectCast(Me.Resources("RainbowBrush"), Brush)
End Sub
<Page.Resources>
...
  <LinearGradientBrush x:Key="RainbowBrush">
    <GradientStop Color="Red" Offset="0.05" />
    <GradientStop Color="Orange" Offset="0.23" />
    <GradientStop Color="Yellow" Offset="0.41" />
    <GradientStop Color="Green" Offset="0.59" />
    <GradientStop Color="Blue" Offset="0.77" />
    <GradientStop Color="Purple" Offset="0.95" />
 </LinearGradientBrush>
</Page.Resources>

Keterangan

Tujuan utama item dalam kumpulan Sumber Daya adalah untuk merujuknya dari bagian lain dari XAML Anda, menggunakan referensi ekstensi markup {StaticResource} (atau referensi ekstensi markup {ThemeResource} serupa). Jika Anda ingin mengakses kumpulan Sumber Daya pada durasi, Anda dapat menggunakan API templat yang relevan untuk mengkueri, menambahkan, atau menghapus item di ResourceDictionary.

Untuk informasi dan contoh selengkapnya, lihat Referensi sumber daya ResourceDictionary dan XAML.

ResourceDictionary adalah koleksi kunci, yang didasarkan pada templat IMap<K,V> jika Anda memprogram dengan ekstensi komponen Visual C++ (C++/CX), atau templat TKey,TValue> IDictionary< jika Anda memprogram dengan C# atau Microsoft Visual Basic. API yang Anda gunakan dalam kode untuk bekerja dengan kamus dan itemnya mencerminkan templat yang mendasarinya dan dengan demikian bahasa yang Anda gunakan untuk aplikasi Anda.

Aplikasi juga memiliki properti Sumber Daya , yang dapat digunakan untuk menyimpan sumber daya yang harus dapat diakses dari lebih dari satu halaman di aplikasi. Sumber daya untuk kontrol kustom juga dapat disimpan dalam file XAML terpisah yang dibuat oleh templat proyek default kontrol templat.

Item yang Anda lihat dalam koleksi Sumber Daya XAML belum tentu merupakan keseluruhan sumber daya yang ditentukan XAML yang tersedia saat runtime. Sumber daya lain tersedia saat runtime, karena pengaruh properti MergedDictionaries pada ResourceDictionary. Nilai MergedDictionaries dapat memperkenalkan kamus lain seperti sumber daya yang ditentukan oleh sistem, seperti sumber daya dari templat kontrol XAML default. Sumber daya khusus tema runtime juga tersedia dari properti ThemeDictionaries serupa. Jika Anda mengakses kumpulan Sumber Daya pada runtime dan kueri untuk kunci tertentu menggunakan pengindeks Item atau metode Pencarian , Anda dapat mengakses dan mengambil sumber daya ini. Untuk informasi selengkapnya, lihat Referensi sumber daya ResourceDictionary dan XAML. Selain itu, Application.Resources dapat menyediakan sumber daya yang tersedia untuk referensi XAML apa pun di aplikasi dan dengan demikian memperluas sumber daya dalam kamus FrameworkElement.Resources tertentu.

Berlaku untuk

Lihat juga