Pemetaan Properti Formulir Windows dan WPF
Teknologi Formulir Windows dan WPF memiliki dua model properti yang serupa tetapi berbeda. Pemetaan properti mendukung interoperaksi antara kedua arsitektur dan menyediakan kemampuan berikut:
Memudahkan untuk memetakan perubahan properti yang relevan di lingkungan host ke kontrol atau elemen yang dihosting.
Menyediakan penanganan default untuk memetakan properti yang paling umum digunakan.
Memungkinkan penghapusan, penimpaan, atau perluasan properti default yang mudah.
Memastikan bahwa perubahan nilai properti pada host secara otomatis terdeteksi dan diterjemahkan ke kontrol atau elemen yang dihosting.
Catatan
Peristiwa perubahan properti tidak disebarkan ke atas kontrol hosting atau hierarki elemen. Terjemahan properti tidak dilakukan jika nilai lokal properti tidak berubah karena pengaturan langsung, gaya, pewarisan, pengikatan data, atau mekanisme lain yang mengubah nilai properti.
PropertyMap Gunakan properti pada WindowsFormsHost elemen dan properti yang PropertyMap dikontrol ElementHost untuk mengakses pemetaan properti.
Pemetaan Properti dengan Elemen WindowsFormsHost
Elemen ini WindowsFormsHost menerjemahkan properti WPF default ke Formulir Windows yang setara menggunakan tabel terjemahan berikut.
Hosting Windows Presentation Foundation | Formulir Windows | Perilaku interoperabilitas |
---|---|---|
Background (System.Windows.Media.Brush) |
BackColor (System.Drawing.Color) |
Elemen WindowsFormsHost mengatur BackColor properti kontrol yang dihosting dan BackgroundImage properti kontrol yang dihosting. Pemetaan dilakukan dengan menggunakan aturan berikut: - Jika Background berwarna solid, itu dikonversi dan digunakan untuk mengatur BackColor properti kontrol yang dihosting. Properti BackColor tidak diatur pada kontrol yang dihosting, karena kontrol yang dihosting dapat mewarisi nilai BackColor properti. Catatan: Kontrol yang dihosting tidak mendukung transparansi. Warna apa pun yang ditetapkan harus BackColor sepenuhnya buram, dengan nilai alfa 0xFF. - Jika Background bukan warna solid, WindowsFormsHost kontrol membuat bitmap dari Background properti . Kontrol WindowsFormsHost menetapkan bitmap ini ke BackgroundImage properti kontrol yang dihosting. Ini memberikan efek yang mirip dengan transparansi. Catatan: Anda dapat mengambil alih perilaku ini atau Anda dapat menghapus Background pemetaan properti. |
Cursor | Cursor | Jika pemetaan default belum ditetapkan kembali, WindowsFormsHost kontrol akan melintasi hierarki leluhurnya hingga menemukan leluhur dengan kumpulan propertinya Cursor . Nilai ini diterjemahkan ke kursor Formulir Windows terdekat yang sesuai. Jika pemetaan default untuk ForceCursor properti belum ditetapkan kembali, traversal akan berhenti pada leluhur pertama dengan ForceCursor diatur ke true . |
FlowDirection (System.Windows.FlowDirection) |
RightToLeft (System.Windows.Forms.RightToLeft) |
LeftToRight mematakan ke No. RightToLeft mematakan ke Yes. Inherit tidak dipetakan. FlowDirection.RightToLeft mematakan ke RightToLeft.Yes. |
FontStyle | Style pada kontrol yang dihosting System.Drawing.Font | Kumpulan properti WPF diterjemahkan ke dalam yang sesuai Font. Ketika salah satu properti ini berubah, properti baru Font dibuat. Untuk Normal: Italic dinonaktifkan. Untuk Italic atau Oblique: Italic diaktifkan. |
FontWeight | Style pada kontrol yang dihosting System.Drawing.Font | Kumpulan properti WPF diterjemahkan ke dalam yang sesuai Font. Ketika salah satu properti ini berubah, properti baru Font dibuat. Untuk Black, , Bold, ExtraBoldDemiBold, Heavy, Medium, SemiBold, atau UltraBold: Bold diaktifkan. Untuk ExtraLight, , NormalLight, Regular, Thin, atau UltraLight: Bold dinonaktifkan. |
FontFamily FontSize FontStretch FontStyle FontWeight |
Font (System.Drawing.Font) |
Kumpulan properti WPF diterjemahkan ke dalam yang sesuai Font. Ketika salah satu properti ini berubah, properti baru Font dibuat. Kontrol Formulir Windows yang dihosting mengubah ukuran berdasarkan ukuran font. Ukuran font dalam WPF dinyatakan sebagai sembilan puluh enam inci, dan dalam Formulir Windows sebagai satu tujuh puluh detik dari satu inci. Konversi yang sesuai adalah: Formulir Windows ukuran font = ukuran font WPF * 72,0 / 96,0. |
Foreground (System.Windows.Media.Brush) |
ForeColor (System.Drawing.Color) |
Pemetaan Foreground properti dilakukan dengan menggunakan aturan berikut: - Jika Foreground adalah SolidColorBrush, gunakan Color untuk ForeColor. - Jika Foreground adalah GradientBrush, gunakan warna GradientStop dengan nilai offset terendah untuk ForeColor. - Untuk jenis lain Brush , biarkan ForeColor tidak berubah. Ini berarti default digunakan. |
IsEnabled | Enabled | Ketika IsEnabled diatur, WindowsFormsHost elemen mengatur Enabled properti pada kontrol yang dihosting. |
Padding | Padding | Keempat nilai Padding properti pada kontrol Formulir Windows yang dihosting diatur ke nilai yang samaThickness. - Nilai yang lebih besar dari MaxValue yang diatur ke MaxValue. - Nilai kurang dari MinValue diatur ke MinValue. |
Visibility | Visible | - Visible mematakan ke Visible = true . Kontrol Formulir Windows yang dihosting terlihat. Secara eksplisit mengatur Visible properti pada kontrol false yang dihosting tidak disarankan.- Collapsedpeta ke Visible = true atau .false Kontrol Formulir Windows yang dihosting tidak digambar, dan areanya diciutkan.- Hidden: Kontrol Formulir Windows yang dihosting menempati ruang dalam tata letak, tetapi tidak terlihat. Dalam hal ini, Visible properti diatur ke true . Secara eksplisit mengatur Visible properti pada kontrol false yang dihosting tidak disarankan. |
Properti terlampir pada elemen kontainer didukung sepenuhnya oleh WindowsFormsHost elemen .
Untuk informasi selengkapnya, lihat Panduan: Properti Pemetaan Menggunakan Elemen WindowsFormsHost.
Pembaruan untuk Properti Induk
Perubahan pada sebagian besar properti induk menyebabkan pemberitahuan ke kontrol anak yang dihosting. Daftar berikut ini menjelaskan properti yang tidak menyebabkan pemberitahuan saat nilainya berubah.
Misalnya, jika Anda mengubah nilai Background properti WindowsFormsHost elemen , BackColor properti kontrol yang dihosting tidak berubah.
Pemetaan Properti dengan Kontrol ElementHost
Properti berikut ini menyediakan pemberitahuan perubahan bawaan. Jangan panggil OnPropertyChanged metode ketika Anda memetakan properti ini:
Ukuran Otomatis
Warna Belakang
BackgroundImage
BackgroundImageLayout
BindingContext
PenyebabValidasi
ContextMenu
ContextMenuStrip
Kursor
Tambatkan
Aktif
Font
ForeColor
Lokasi
Margin
Padding
Parent
Wilayah
RightToLeft
Ukuran
TabIndex
TabStop
Teks
Dapat dilihat
Kontrol menerjemahkan ElementHost properti Formulir Windows default ke setara WPF mereka dengan menggunakan tabel terjemahan berikut.
Untuk informasi selengkapnya, lihat Panduan: Memetakan Properti Menggunakan Kontrol ElementHost.
hosting Formulir Windows | Windows Presentation Foundation | Perilaku interoperabilitas |
---|---|---|
BackColor (System.Drawing.Color) |
Background (System.Windows.Media.Brush) pada elemen yang dihosting |
Mengatur properti ini memaksa pengecatan ulang dengan ImageBrush. BackColorTransparent Jika properti diatur ke false (nilai default), ini ImageBrush didasarkan pada tampilan ElementHost kontrol, termasuk BackColorproperti , , BackgroundImageBackgroundImageLayout , dan handler cat yang terpasang.BackColorTransparent Jika properti diatur ke true , ImageBrush didasarkan pada tampilan ElementHost induk kontrol, termasuk properti , , BackgroundImageLayout indukBackColorBackgroundImage, dan penangan cat yang terpasang. |
BackgroundImage (System.Drawing.Image) |
Background (System.Windows.Media.Brush) pada elemen yang dihosting |
Mengatur properti ini menyebabkan perilaku yang sama yang dijelaskan untuk BackColor pemetaan. |
BackgroundImageLayout | Background (System.Windows.Media.Brush) pada elemen yang dihosting |
Mengatur properti ini menyebabkan perilaku yang sama yang dijelaskan untuk BackColor pemetaan. |
Cursor (System.Windows.Forms.Cursor) |
Cursor (System.Windows.Input.Cursor) |
Kursor standar Formulir Windows diterjemahkan ke kursor standar WPF yang sesuai. Jika Formulir Windows bukan kursor standar, default ditetapkan. |
Enabled | IsEnabled | Ketika Enabled diatur, ElementHost kontrol mengatur IsEnabled properti pada elemen yang dihosting. |
Font (System.Drawing.Font) |
FontFamily FontSize FontStretch FontStyle FontWeight |
Nilai diterjemahkan Font ke dalam sekumpulan properti font WPF yang sesuai. |
Bold | FontWeight pada elemen yang dihosting | Jika Bold adalah true , FontWeight diatur ke Bold.Jika Bold adalah false , FontWeight diatur ke Normal. |
Italic | FontStyle pada elemen yang dihosting | Jika Italic adalah true , FontStyle diatur ke Italic.Jika Italic adalah false , FontStyle diatur ke Normal. |
Strikeout | TextDecorations pada elemen yang dihosting | Hanya berlaku saat menghosting TextBlock kontrol. |
Underline | TextDecorations pada elemen yang dihosting | Hanya berlaku saat menghosting TextBlock kontrol. |
RightToLeft (System.Windows.Forms.RightToLeft) |
FlowDirection (FlowDirection) |
No mematakan ke LeftToRight. Yes mematakan ke RightToLeft. |
Visible | Visibility | Kontrol ElementHost mengatur Visibility properti pada elemen yang dihosting dengan menggunakan aturan berikut: - Visible = true mematakan ke Visible.- Visible = false mematakan ke Hidden. |
Baca juga
.NET Desktop feedback