Bagikan melalui


IAmbientProvider Antarmuka

Definisi

Mewakili layanan yang dapat mengembalikan item informasi tentang properti sekitar atau jenis sekitar untuk mengetik konverter dan ekstensi markup.

public interface class IAmbientProvider
public interface IAmbientProvider
type IAmbientProvider = interface
Public Interface IAmbientProvider

Keterangan

Antarmuka ini mewakili layanan yang dapat membantu mengetik pengonversi dan ekstensi markup untuk mendapatkan pengidentifikasi properti sekitar untuk sistem jenis XAML (XamlMember objek). Layanan ini juga bisa mendapatkan nilai properti sekitar dari kelas. Jenis juga bisa sekitar; setiap anggota yang menggunakan jenis tersebut sebagai nilainya harus dianggap sekitar.

Layanan ini biasanya dikembalikan melalui panggilan ke GetService, yang dilakukan terhadap penyedia layanan khusus konteks. Penyedia layanan umumnya tersedia untuk konteks yang membutuhkannya, seperti kode eksekusi pengonversi nilai. Untuk informasi selengkapnya, lihat Jenis Pengonversi dan Ekstensi Markup untuk Konteks XAML dan Layanan yang Tersedia untuk Jenis Pengonversi dan Ekstensi Markup.

Tentang Properti Sekitar

Properti sekitar adalah properti yang nilai propertinya harus tersedia untuk mengetik penggunaan ekstensi pengonversi dan markup yang ada dalam struktur simpul XAML dan dalam grafik objek yang dibuat darinya. Ini relevan untuk prosesor XAML selama fase penulisan objek jalur beban atau fase serialisasi jalur penyimpanan.

Dalam kasus jalur beban, nilai properti sekitar mungkin memengaruhi nilai dalam grafik objek properti lain yang ada di bawahnya dalam struktur simpul XAML. Ketika diproses sebagai aliran simpul XAML, konsep sekitar berarti nilai properti sekitar harus tersedia untuk mengetik konverter dan ekstensi markup dari StartObject ke EndObject. Demikian pula, pengonversi jenis yang digunakan untuk jalur penyimpanan dapat menggunakan pengetahuan tentang properti sekitar dan nilainya. Oleh karena itu, XAML yang diproduksi adalah representasi pulang pergi yang lebih baik.

Untuk anggota secara umum, XAML tidak menentukan urutan di mana anggota objek harus diproses. Namun, nilai properti sekitar apa pun harus diproses terlebih dahulu oleh pembaca XAML sehingga jenis konverter dan penggunaan ekstensi markup yang terkandung dalam properti lain dapat mengaksesnya melalui IAmbientProvider layanan.

DependsOn adalah konsep serupa yang juga memengaruhi urutan pemrosesan simpul XAML. Namun, DependsOn hanya dapat digunakan untuk hubungan anggota serekan dan simpul; itu tidak dapat memengaruhi semua keturunan. Selain itu, DependsOn secara langsung memengaruhi pengaturan properti grafik objek; sedangkan teknik sekitar bergantung pada pengonversi jenis atau ekstensi markup. Dalam teknik sekitar, harus ada juga definisi konverter jenis atau ekstensi markup tertentu yang menentukan bagaimana nilai properti sekitar harus ditafsirkan dan diterapkan ke objek.

Catatan Penggunaan WPF

Skenario properti sekitar yang diilustrasikan dalam kumpulan fitur WPF adalah Style.TargetType, yang dapat memenuhi syarat pencarian nama properti yang diperlukan untuk nilai lain. Dalam hal ini, Style.TargetType nilai memenuhi syarat Setter.Property nilai yang terletak di simpul XAML di bawahnya. Setter.Property menggunakan perilaku pengonversi jenis untuk DependencyProperty. Perilaku ini mengakses nilai sekitar dengan mengkueri Style.TargetTypeGetFirstAmbientValue dari konteks layanan yang tersedia untuk mengetik konverter dan ekstensi markup.

Skenario jenis sekitar yang diilustrasikan dalam set fitur WPF adalah ResourceDictionary. ResourceDictionary memiliki MergedDictionaries properti yang dapat berisi objek lain ResourceDictionary untuk digabungkan, dan urutan resolusi sumber daya yang dimaksudkan untuk skenario gabungan bentrokan dengan urutan jenis yang dimuat. ResourceDictionary AmbientAttribute berlaku sehingga prosesor XAML dapat memproses referensi dengan benar dalam kamus gabungan dengan StaticResource penggunaan. Secara khusus, StaticResource adalah ekstensi markup, yang memanggil GetAllAmbientValues.

Metode

Nama Deskripsi
GetAllAmbientValues(IEnumerable<XamlType>, Boolean, IEnumerable<XamlType>, XamlMember[])

Mengembalikan sekumpulan item informasi properti sekitar yang dapat dijumlahkan untuk sekumpulan jenis dan properti yang diminta.

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

Mengembalikan sekumpulan item informasi properti sekitar yang dapat dijumlahkan untuk kumpulan properti yang diminta.

GetAllAmbientValues(XamlType[])

Mengembalikan sekumpulan instans objek yang dapat dijumlahkan dari jenis sekitar yang mungkin untuk jenis yang diminta.

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

Mengembalikan item informasi properti sekitar tunggal dari kumpulan properti yang diminta, berdasarkan properti mana yang pertama kali ditemui.

GetFirstAmbientValue(XamlType[])

Mengembalikan objek pencocokan pertama yang merupakan jenis sekitar yang mungkin untuk jenis yang diminta.

Berlaku untuk

Lihat juga