Bagikan melalui


Pemetaan Properti Formulir Windows dan WPF

Teknologi Windows Forms 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, penggantian, atau penambahan properti bawaan dengan mudah.

  • Memastikan bahwa perubahan nilai properti pada host secara otomatis terdeteksi dan diterjemahkan ke kontrol atau elemen yang dihosting.

Nota

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.

Gunakan properti PropertyMap pada elemen WindowsFormsHost dan properti PropertyMap pada kontrol ElementHost untuk mengakses pemetaan properti.

Pemetaan Properti dengan Elemen WindowsFormsHost

Elemen WindowsFormsHost ini menerjemahkan properti WPF bawaan ke dalam setara Windows Forms menggunakan tabel terjemahan berikut.

Penyediaan Windows Presentation Foundation Formulir Windows Perilaku interoperabilitas
Background

Aku akan menemuinya.System.Windows.Media.Brush
BackColor

Aku akan menemuinya.System.Drawing.Color
Elemen WindowsFormsHost menetapkan properti BackColor dan BackgroundImage dari 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. Nota: Kontrol yang dihosting tidak mendukung transparansi. Warna apa pun yang ditetapkan kepada BackColor harus sepenuhnya buram, dengan nilai alfa 0xFF.

- Jika Background bukan warna solid, maka WindowsFormsHost kontrol tersebut membuat bitmap berdasarkan properti Background. Kontrol WindowsFormsHost menetapkan bitmap ini ke BackgroundImage properti kontrol yang dihosting. Ini memberikan efek yang mirip dengan transparansi. Nota: Anda dapat mengambil alih perilaku ini atau Anda dapat menghapus Background pemetaan properti.
Cursor Cursor Jika pemetaan default belum ditetapkan kembali, kontrol WindowsFormsHost akan melintasi hierarki leluhurnya hingga menemukan leluhur dengan properti Cursor yang ditetapkan. 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

Aku akan menemuinya.System.Windows.FlowDirection
RightToLeft

Aku akan menemuinya.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 Font yang sesuai. 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 Font yang sesuai. Ketika salah satu properti ini berubah, properti baru Font dibuat. Untuk Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold, atau UltraBold: Bold diaktifkan. Untuk ExtraLight, Light, Normal, Regular, Thin, atau UltraLight: Bold dinonaktifkan.
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
Font

Aku akan menemuinya.System.Drawing.Font
Kumpulan properti WPF diterjemahkan ke Font yang sesuai. Ketika salah satu properti ini berubah, properti baru Font dibuat. Ukuran kontrol Windows Forms yang dihosting berubah sesuai dengan ukuran font.

Ukuran font dalam WPF dinyatakan sebagai sepersembilan puluh enam inci, dan dalam Windows Forms sebagai sepertujuh puluh dua inci. Konversi yang sesuai adalah:

Ukuran font Formulir Windows = ukuran font WPF * 72,0 / 96,0.
Foreground

Aku akan menemuinya.System.Windows.Media.Brush
ForeColor

Aku akan menemuinya.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, elemen WindowsFormsHost menetapkan properti Enabled pada kontrol yang dihosting.
Padding Padding Keempat nilai Padding properti pada kontrol Windows Forms yang dihosting diatur dengan nilai yang sama Thickness.

- Nilai yang lebih besar dari MaxValue diubah menjadi MaxValue.
- Nilai kurang dari MinValue diatur ke MinValue.
Visibility Visible - Visible dipetakan menjadi Visible = true. Kontrol Windows Forms yang dihosting terlihat. Secara eksplisit menetapkan properti Visible pada kontrol yang dihosting menjadi false tidak disarankan.
- Collapsedpeta ke Visible = true atau false. Kontrol Windows Forms yang dihosting tidak ditampilkan, dan areanya menjadi tersembunyi.
- Hidden : Kontrol Windows Forms yang dihosting menempati ruang dalam tata letak, tetapi tidak terlihat. Dalam hal ini, Visible properti diatur ke true. Secara eksplisit menetapkan properti Visible pada kontrol yang dihosting menjadi false tidak disarankan.

Properti terlampir pada elemen kontainer didukung sepenuhnya oleh WindowsFormsHost elemen .

Untuk informasi selengkapnya, lihat Panduan Langkah demi Langkah: Pemetaan Properti 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

Fitur berikut ini menyediakan pemberitahuan perubahan bawaan. Jangan panggil OnPropertyChanged metode ketika Anda memetakan properti ini:

  • Ukuran Otomatis

  • Warna Belakang

  • Gambar Latar Belakang

  • Tata Letak Gambar Latar

  • BindingContext

  • PenyebabValidasi

  • Menu Konteks

  • ContextMenuStrip

  • Kursor

  • Dok

  • Diaktifkan

  • Jenis huruf

  • ForeColor

  • Lokasi

  • marjin / batas

  • Pengisi

  • Orang tua

  • Wilayah

  • KananKeKiri

  • Ukuran

  • TabIndex

  • TabStop

  • Teks

  • Dapat dilihat

Kontrol ElementHost menerjemahkan properti Formulir Windows default ke yang setara dalam WPF dengan menggunakan tabel terjemahan berikut.

Untuk informasi selengkapnya, lihat Panduan: Memetakan Properti Menggunakan Kontrol ElementHost.

Pengelolaan Windows Forms Windows Presentation Foundation Perilaku interoperabilitas
BackColor

Aku akan menemuinya.System.Drawing.Color
Background

(System.Windows.Media.Brush) pada elemen yang dihosting
Mengatur properti ini memaksa pengecatan ulang dengan ImageBrush. Jika properti BackColorTransparent diatur ke false (nilai default), ImageBrush ini didasarkan pada tampilan kontrol ElementHost, termasuk properti BackColor, BackgroundImage, BackgroundImageLayout, dan handler cat yang terpasang.

Jika properti BackColorTransparent diatur ke true, tampilan ImageBrush didasarkan pada tampilan induk kontrol ElementHost, termasuk properti BackColor, BackgroundImage, BackgroundImageLayout pada induk, dan penangan cat yang terpasang.
BackgroundImage

Aku akan menemuinya.System.Drawing.Image
Background

(System.Windows.Media.Brush) pada elemen yang dihosting
Mengatur properti ini menyebabkan perilaku yang sama seperti yang dijelaskan pada BackColor pemetaan.
BackgroundImageLayout Background

(System.Windows.Media.Brush) pada elemen yang dihosting
Mengatur properti ini menyebabkan perilaku yang sama seperti yang dijelaskan pada BackColor pemetaan.
Cursor

Aku akan menemuinya.System.Windows.Forms.Cursor
Cursor

Aku akan menemuinya.System.Windows.Input.Cursor
Kursor standar Windows Forms diterjemahkan ke kursor standar WPF yang sesuai. Jika Windows Forms bukan kursor standar, maka default akan diberlakukan.
Enabled IsEnabled Ketika Enabled telah diatur, kontrol ElementHost menetapkan properti IsEnabled pada elemen yang dihosting.
Font

Aku akan menemuinya.System.Drawing.Font
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
Nilai Font diterjemahkan ke dalam sekumpulan properti font WPF yang sesuai.
Bold FontWeight pada elemen terhosting Jika Bold adalah true, FontWeight diatur ke Bold.

Jika Bold adalah false, FontWeight diatur ke Normal.
Italic FontStyle pada elemen terhosting Jika Italic adalah true, FontStyle diatur ke Italic.

Jika Italic adalah false, FontStyle diatur ke Normal.
Strikeout TextDecorations pada elemen terhosting Hanya berlaku saat menghosting TextBlock kontrol.
Underline TextDecorations pada elemen terhosting Hanya berlaku saat menghosting TextBlock kontrol.
RightToLeft

Aku akan menemuinya.System.Windows.Forms.RightToLeft
FlowDirection

Aku akan menemuinya.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 dipetakan ke Visible.
- Visible = false dipetakan ke Hidden.

Lihat juga