FrameworkPropertyMetadata.AffectsRender Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau menetapkan nilai yang menunjukkan apakah properti dependensi berpotensi memengaruhi tata letak umum dengan beberapa cara yang tidak secara khusus memengaruhi pengaturan atau pengukuran, tetapi akan memerlukan penggalian ulang.
public:
property bool AffectsRender { bool get(); void set(bool value); };
public bool AffectsRender { get; set; }
member this.AffectsRender : bool with get, set
Public Property AffectsRender As Boolean
Nilai Properti
true jika properti dependensi tempat metadata ini ada memengaruhi penyajian; jika tidak, false. Defaultnya adalah false.
Pengecualian
Metadata telah diterapkan ke operasi properti dependensi, sehingga metadata disegel dan properti metadata tidak dapat diatur.
Contoh
Contoh berikut mendapatkan metadata default dari berbagai bidang properti dependensi, meminta nilai berbagai FrameworkPropertyMetadata properti di dalamnya, dan menggunakan informasi untuk mengisi tabel untuk menerapkan "browser metadata".
pm = dp.GetMetadata(dp.OwnerType);
pm = dp.GetMetadata(dp.OwnerType)
FrameworkPropertyMetadata fpm = pm as FrameworkPropertyMetadata;
if (fpm!=null) {
AffectsArrange.Text = (fpm.AffectsArrange) ? "Yes" : "No";
AffectsMeasure.Text = (fpm.AffectsMeasure) ? "Yes" : "No";
AffectsRender.Text = (fpm.AffectsRender) ? "Yes" : "No";
Inherits.Text = (fpm.Inherits) ? "Yes" : "No";
IsDataBindingAllowed.Text = (fpm.IsDataBindingAllowed) ? "Yes" : "No";
BindsTwoWayByDefault.Text = (fpm.BindsTwoWayByDefault) ? "Yes" : "No";
}
Dim fpm As FrameworkPropertyMetadata = TryCast(pm, FrameworkPropertyMetadata)
If fpm IsNot Nothing Then
AffectsArrange.Text = If((fpm.AffectsArrange), "Yes", "No")
AffectsMeasure.Text = If((fpm.AffectsMeasure), "Yes", "No")
AffectsRender.Text = If((fpm.AffectsRender), "Yes", "No")
[Inherits].Text = If((fpm.Inherits), "Yes", "No")
IsDataBindingAllowed.Text = If((fpm.IsDataBindingAllowed), "Yes", "No")
BindsTwoWayByDefault.Text = If((fpm.BindsTwoWayByDefault), "Yes", "No")
Keterangan
FrameworkElement dan FrameworkContentElement menyertakan implementasi OnPropertyChanged yang memantau perubahan nilai efektif pada semua properti dependensi yang ada pada elemen. Sebagai bagian dari logika tersebut, properti dependensi yang mengubah nilai efektif dan memiliki metadata dengan AffectsRender diatur ke true akan memulai permintaan yang ditangguhkan untuk membatalkan visual untuk elemen tersebut. Karena implementasi tingkat kerangka kerja WPF ini sudah ada, Anda biasanya tidak perlu mencari properti dependensi kecuali AffectsRender Anda mengganti atau memodifikasi perilaku tata letak tingkat kerangka kerja WPF secara substansial.
Implementasi kustom OnPropertyChanged mungkin memilih untuk memiliki perilaku serupa untuk perubahan properti dependensi di mana AffectsRender adalah true.
Properti pada kelas turunan PropertyMetadata apa pun biasanya didefinisikan dalam model objek sebagai baca-tulis. Hal ini agar dapat disesuaikan setelah inisialisasi instans. Namun, setelah metadata digunakan sebagai bagian dari panggilan ke Register, , AddOwneratau OverrideMetadata, sistem properti akan menyegel instans metadata dan properti yang menyampaikan spesifikasi metadata sekarang dianggap tidak dapat diubah. Mencoba mengatur properti ini setelah IsSealed ada true pada instans metadata ini akan menimbulkan pengecualian.
Penggunaan Teks XAML
Anggota kelas ini biasanya tidak digunakan dalam XAML.