Bagikan melalui


Ekstensi Markup TemaDictionary

Menyediakan cara bagi penulis kontrol kustom atau aplikasi yang mengintegrasikan kontrol pihak ketiga untuk memuat kamus sumber daya khusus tema untuk digunakan dalam menata kontrol.

Penggunaan Atribut XAML

<object property="{ThemeDictionary assemblyUri}" ... />  

Penggunaan Elemen Objek XAML

<object>  
  <object.property>  
    <ThemeDictionary AssemblyName="assemblyUri"/>  
  <object.property>  
<object>  

Nilai XAML

Nilai Deskripsi
assemblyUri Pengidentifikasi sumber daya seragam (URI) dari rakitan yang berisi informasi tema. Biasanya, ini adalah URI paket yang mereferensikan rakitan dalam paket yang lebih besar. Sumber daya rakitan dan URI paket menyederhanakan masalah penyebaran. Untuk informasi selengkapnya, lihat Mengemas URI di WPF.

Keterangan

Ekstensi ini dimaksudkan untuk mengisi hanya satu nilai properti tertentu: nilai untuk ResourceDictionary.Source.

Dengan menggunakan ekstensi ini, Anda dapat menentukan rakitan khusus sumber daya tunggal yang berisi beberapa gaya untuk digunakan hanya ketika tema Windows Aero diterapkan ke sistem pengguna, gaya lain hanya ketika tema Luna aktif, dan sebagainya. Dengan menggunakan ekstensi ini, konten kamus sumber daya khusus kontrol dapat secara otomatis divalidasi dan dimuat ulang agar spesifik untuk tema lain jika diperlukan.

String assemblyUri (AssemblyName nilai properti) membentuk dasar konvensi penamaan yang mengidentifikasi kamus mana yang berlaku untuk tema tertentu. Logika ProvideValue untuk ThemeDictionary menyelesaikan konvensi dengan menghasilkan pengidentifikasi sumber daya seragam (URI) yang menunjuk ke varian kamus tema tertentu, seperti yang terkandung dalam perakitan sumber daya yang telah dikompilasi sebelumnya. Menjelaskan konvensi ini, atau interaksi tema dengan gaya kontrol umum dan gaya tingkat halaman/aplikasi sebagai konsep, tidak tercakup sepenuhnya di sini. Skenario dasar untuk digunakan ThemeDictionary adalah menentukan Source properti dari yang ResourceDictionary dideklarasikan di tingkat aplikasi. Ketika Anda memberikan URI untuk rakitan melalui ThemeDictionary ekstensi daripada sebagai URI langsung, logika ekstensi akan memberikan logika pembatalan yang berlaku setiap kali tema sistem berubah.

Sintaks atribut adalah sintaks yang paling umum digunakan dengan ekstensi markup ini. Token string yang disediakan setelah ThemeDictionary string pengidentifikasi ditetapkan sebagai AssemblyName nilai kelas ekstensi yang mendasar ThemeDictionaryExtension .

ThemeDictionary juga dapat digunakan dalam sintaks elemen objek. Dalam hal ini, menentukan nilai AssemblyName properti diperlukan.

ThemeDictionary juga dapat digunakan dalam penggunaan atribut verbose yang menentukan Member properti sebagai pasangan properti=nilai:

<object property="{ThemeDictionary AssemblyName=assemblyUri}" ... />  

Penggunaan verbose sering berguna untuk ekstensi yang memiliki lebih dari satu properti yang dapat diatur, atau jika beberapa properti bersifat opsional. Karena ThemeDictionary 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 ThemeDictionaryExtension kelas .

ThemeDictionary 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