Bagikan melalui


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