Ekstensi Markup StaticResource

Menyediakan nilai untuk atribut properti XAML apa pun dengan mencari referensi ke sumber daya yang sudah ditentukan. Perilaku pencarian untuk sumber daya tersebut dianalogikan dengan pencarian waktu muat, yang akan mencari sumber daya yang sebelumnya dimuat dari markup halaman XAML saat ini serta sumber aplikasi lainnya, dan akan menghasilkan nilai sumber daya tersebut sebagai nilai properti dalam objek run-time.

Penggunaan Atribut XAML

<object property="{StaticResource key}" ... />  

Penggunaan Elemen Objek XAML

<object>  
  <object.property>  
<StaticResource ResourceKey="key" ... />  
  </object.property>  
</object>  

Nilai XAML

Nilai Deskripsi
key Kunci untuk sumber daya yang diminta. Kunci ini awalnya ditetapkan oleh x:Key Directive jika sumber daya dibuat dalam markup, atau disediakan sebagai key parameter saat memanggil ResourceDictionary.Add jika sumber daya dibuat dalam kode.

Keterangan

Penting

StaticResource Tidak boleh mencoba membuat referensi penerusan ke sumber daya yang didefinisikan secara leksikal lebih lanjut dalam file XAML. Mencoba melakukannya tidak didukung, dan bahkan jika referensi seperti itu tidak gagal, mencoba referensi maju akan dikenakan penalti performa waktu muat ketika tabel hash internal yang ResourceDictionary mewakili dicari. Untuk hasil terbaik, sesuaikan komposisi kamus sumber daya Anda sehingga referensi penerusan dapat dihindari. Jika Anda tidak dapat menghindari referensi penerusan, gunakan DynamicResource Markup Extension sebagai gantinya.

Yang ditentukan ResourceKey harus sesuai dengan sumber daya yang ada, diidentifikasi dengan x:Key Directive pada beberapa tingkat di halaman, aplikasi, tema kontrol yang tersedia, dan sumber daya eksternal, atau sumber daya sistem. Pencarian sumber daya terjadi dalam urutan tersebut. Untuk informasi selengkapnya tentang perilaku pencarian sumber daya untuk sumber daya statis dan dinamis, lihat Sumber Daya XAML.

Kunci sumber daya dapat berupa string apa pun yang ditentukan dalam Tata Bahasa XamlName. Kunci sumber daya juga dapat berupa jenis objek lain, seperti Type. Kunci Type sangat mendasar tentang bagaimana kontrol dapat ditata berdasarkan tema, melalui kunci gaya implisit. Untuk informasi selengkapnya, lihat Gambaran Umum Penulisan Kontrol.

Cara deklaratif alternatif untuk mereferensikan sumber daya adalah sebagai DynamicResource Markup Extension.

Sintaks atribut adalah sintaks yang paling umum digunakan dengan ekstensi markup ini. Token string yang disediakan setelah StaticResource string pengidentifikasi ditetapkan sebagai ResourceKey nilai kelas ekstensi yang mendasar StaticResourceExtension .

StaticResource dapat digunakan dalam sintaks elemen objek. Dalam hal ini, menentukan nilai ResourceKey properti diperlukan.

StaticResource juga dapat digunakan dalam penggunaan atribut verbose yang menentukan ResourceKey properti sebagai pasangan properti=nilai:

<object property="{StaticResource ResourceKey=key}" ... />  

Penggunaan verbose sering berguna untuk ekstensi yang memiliki lebih dari satu properti yang dapat diatur, atau jika beberapa properti bersifat opsional. Karena StaticResource hanya memiliki satu properti yang dapat diatur, yang diperlukan, penggunaan verbose ini tidak khas.

Dalam implementasi prosesor WPF XAML, penanganan untuk ekstensi markup ini ditentukan oleh StaticResourceExtension kelas .

StaticResource adalah ekstensi markup. Ekstensi markup biasanya diimplementasikan ketika ada persyaratan untuk meloloskan nilai atribut menjadi selain nilai harfiah atau nama handler, dan persyaratannya lebih global daripada hanya menempatkan pengonversi jenis pada jenis atau properti tertentu. Semua ekstensi markup di XAML menggunakan { dan } karakter dalam sintaks atributnya, yang merupakan konvensi di mana prosesor XAML mengenali bahwa ekstensi markup harus memproses atribut . Untuk informasi selengkapnya, lihat Ekstensi Markup dan WPF XAML.

Baca juga