Windows Forms ve WPF Özelliğini Eşleme
Windows Forms ve WPF teknolojilerinin iki benzer ama farklı özellik modeli vardır. Özellik eşlemesi iki mimari arasında birlikte çalışabilirliği destekler ve aşağıdaki özellikleri sağlar:
Konak ortamındaki ilgili özellik değişikliklerini barındırılan denetime veya öğeye eşlemeyi kolaylaştırır.
En yaygın kullanılan özellikleri eşlemek için varsayılan işleme sağlar.
Varsayılan özellikleri kolayca kaldırmaya, geçersiz kılmaya veya genişletmeye olanak sağlar.
Konakta özellik değeri değişikliklerinin otomatik olarak algılandığından ve barındırılan denetime veya öğeye çevrilene kadar devam eder.
Not
Özellik değişikliği olayları barındırma denetimi veya öğe hiyerarşisine yayılmaz. Özelliğin yerel değeri doğrudan ayar, stiller, devralma, veri bağlama veya özelliğin değerini değiştiren diğer mekanizmalar nedeniyle değişmezse özellik çevirisi gerçekleştirlanmaz.
Özellik PropertyMap eşlemeye erişmek WindowsFormsHost için öğesinde PropertyMap özelliğini ve ElementHost denetimin özelliğini kullanın.
WindowsFormsHost Öğesi ile Özellik Eşleme
öğesi, WindowsFormsHost varsayılan WPF özelliklerini aşağıdaki çeviri Windows Forms eşdeğerlerine çevirir.
| Windows Presentation Foundation barındırma | Windows Forms | Birlikte çalışma davranışı |
|---|---|---|
| Background (System.Windows.Media.Brush) |
BackColor (System.Drawing.Color) |
WindowsFormsHostöğesi BackColor barındırılan denetimin özelliğini ve BackgroundImage barındırılan denetimin özelliğini ayarlar. Eşleme aşağıdaki kurallar kullanılarak gerçekleştirilir: - Background Düz bir renkse, dönüştürülür ve barındırılan BackColor denetimin özelliğini ayarlamak için kullanılır. Barındırılan BackColor denetim özelliğin değerini devralana kadar özelliği barındırılan denetimde BackColor ayarlanmaz. Not: Barındırılan denetim saydamlığı desteklemez. Atanan tüm BackColor renkler, tam olarak opak olmalı ve alfa değer olarak 0xFF. - Background Düz bir renk yoksa, denetim WindowsFormsHost özelliğinden bir bit eşlem Background oluşturur. Denetim WindowsFormsHost bu bit eşlemi BackgroundImage barındırılan denetimin özelliğine atar. Bu, saydamlığa benzer bir etki sağlar. Not: Bu davranışı geçersiz kabilirsiniz veya özellik eşlemesini kaldırabilirsiniz. |
| Cursor | Cursor | Varsayılan eşleme yeniden atanmamışsa denetim, özellik kümesine sahip bir üst değer bulana WindowsFormsHost kadar üst Cursor hiyerarşisinde çapraz geçişler. Bu değer, Formlar imlecine en yakın Windows çevrilir. Özelliğin varsayılan eşlemesi yeniden atanmamışsa, geçiş değeri olarak ayarlanmış ilk ForceCursor üst ForceCursor değerde true durur. |
| FlowDirection (System.Windows.FlowDirection) |
RightToLeft (System.Windows.Forms.RightToLeft) |
LeftToRight ile No eşler. RightToLeft ile Yes eşler. Inherit eşlenmemiş. FlowDirection.RightToLeft ile RightToLeft.Yes eşler. |
| FontStyle | Style barındırılan denetimin System.Drawing.Font | WPF özellikleri kümesi karşılık gelen bir içine Font çevrilir. Bu özelliklerden biri değişirse yeni Font bir oluşturulur. için Normal devre Italic dışıdır. Italicveya Oblique için : Italic etkindir. |
| FontWeight | Style barındırılan denetimin System.Drawing.Font | WPF özellikleri kümesi karşılık gelen bir içine Font çevrilir. Bu özelliklerden biri değişirse yeni Font bir oluşturulur. Black, Bold , , , DemiBold , , veya için : ExtraBoldHeavyMediumSemiBoldUltraBoldBold etkindir. ExtraLight, , , , veya için : devre LightNormalRegularThinUltraLightBold dışıdır. |
| FontFamily FontSize FontStretch FontStyle FontWeight |
Font (System.Drawing.Font) |
WPF özellikleri kümesi karşılık gelen bir içine Font çevrilir. Bu özelliklerden biri değişirse yeni Font bir oluşturulur. Barındırılan Formlar Windows, yazı tipi boyutuna göre yeniden boyutlandırılır. WPF'deki yazı tipi boyutu bir inçin doksan altıda biri, Windows Formlar'da ise bir inçin yetmiş saniyesi olarak ifade edildi. Karşılık gelen dönüştürme şu şekildedir: Windows Forms yazı tipi boyutu = WPF yazı tipi boyutu * 72.0 / 96.0. |
| Foreground (System.Windows.Media.Brush) |
ForeColor (System.Drawing.Color) |
Özellik Foreground eşlemesi aşağıdaki kurallar kullanılarak gerçekleştirilir: - bir ForegroundSolidColorBrush ise, için ColorForeColor kullanın. - Foreground bir GradientBrush ise, için en düşük uzaklık GradientStop değerine sahip olan rengini ForeColor kullanın. - Diğer Brush türler için ForeColor değiştirmeden bırakın. Bu, varsayılan değerin kullanılır olduğu anlamına gelir. |
| IsEnabled | Enabled | ayar IsEnabled olduğunda, WindowsFormsHost öğesi Enabled barındırılan denetimde özelliğini ayarlar. |
| Padding | Padding | Barındırılan Formlar Padding denetiminde özelliğin dört Windows aynı değere Thickness ayarlanır. - büyüktür değerleri MaxValue olarak MaxValue ayarlanır. - Küçük değerler MinValue olarak MinValue ayarlanır. |
| Visibility | Visible | - Visibleile Visible = true eşler. Barındırılan form Windows Forms denetimi görünür durumdadır. Barındırılan Visible denetimde özelliğini açıkça olarak false ayarlaması önerilmez.- Collapsedveya ile Visible = truefalse eşler. Barındırılan Windows Forms denetimi çizilir ve alanı daraltılmış olur.- Hidden: Barındırılan Windows Forms denetimi düzende yer kaplar, ancak görünür değildir. Bu durumda özelliği Visible olarak true ayarlanır. Barındırılan Visible denetimde özelliğini açıkça olarak false ayarlaması önerilmez. |
Kapsayıcı öğelerine eklenen özellikler, öğesi tarafından tam olarak WindowsFormsHost de destekler.
Daha fazla bilgi için bkz. Adım adım kılavuz: WindowsFormsHost Öğesini Kullanarak Özellikleri Eşleme.
Üst Özelliklere Güncelleştirmeler
Çoğu üst özellikte yapılan değişiklikler, barındırılan alt denetim bildirimlerine neden olur. Aşağıdaki listede, değerleri değiştiklerinde bildirimlere neden olan özellikler açıklanmaz.
Örneğin, öğesinin özelliğinin Background değerini WindowsFormsHost değiştirirsiniz, BackColor barındırılan denetimin özelliği değişmez.
ElementHost Denetimi ile Özellik Eşleme
Aşağıdaki özellikler yerleşik değişiklik bildirimi sağlar. Bu özellikleri OnPropertyChanged eşlerken yöntemini çağırabilirsiniz:
AutoSize
Backcolor
BackgroundImage
Backgroundımagelayout
Bindingcontext
Causesvalidation
ContextMenu
ContextMenuStrip
Imleç
Dock
Etkin
Yazı tipi
Forecolor
Konum
Marj
İç Boşluk
Üst
Region
Righttoleft
Boyut
Tabındex
Tabstop
Metin
Görünür
ElementHostdenetim, aşağıdaki çeviri tablosunu kullanarak varsayılan Windows Forms özelliklerini WPF eşdeğerlerine dönüştürür.
Daha fazla bilgi için bkz. Walkthrough: ElementHost denetimini kullanarak özellikleri eşleme.
| Windows Forms barındırma | Windows Presentation Foundation | Birlikte çalışabilirlik davranışı |
|---|---|---|
| BackColor (System.Drawing.Color) |
Background System.Windows.Media.Brushbarındırılan öğede |
Bu özelliği ayarlamak bir yeniden çizmeyi bir ile zorlar ImageBrush . BackColorTransparentÖzelliği olarak ayarlandıysa false (varsayılan değer), bu,, ImageBrushElementHostBackColorBackgroundImageBackgroundImageLayout özellikleri ve tüm bağlı boyama işleyicileri dahil olmak üzere denetimin görünümüne dayalıdır.BackColorTransparentÖzelliği olarak ayarlandıysa, trueImageBrushElementHost üst öğe BackColor , BackgroundImageBackgroundImageLayout Özellikler ve ekli boyama işleyicileri dahil olmak üzere denetimin üstünün görünüşünü temel alır. |
| BackgroundImage (System.Drawing.Image) |
Background System.Windows.Media.Brushbarındırılan öğede |
Bu özelliğin ayarlanması, eşleme için açıklanan davranışa neden olur BackColor . |
| BackgroundImageLayout | Background System.Windows.Media.Brushbarındırılan öğede |
Bu özelliğin ayarlanması, eşleme için açıklanan davranışa neden olur BackColor . |
| Cursor (System.Windows.Forms.Cursor) |
Cursor (System.Windows.Input.Cursor) |
Windows Forms standart imleç, ilgili WPF standart imlecine çevrilir. Windows Forms standart bir imleç değilse, varsayılan değer atanır. |
| Enabled | IsEnabled | Ayarlandığında Enabled , ElementHost Denetim IsEnabled barındırılan öğedeki özelliğini ayarlar. |
| Font (System.Drawing.Font) |
FontFamily FontSize FontStretch FontStyle FontWeight |
FontDeğer, ılgılı WPF yazı tipi özellikleri kümesine çevrilir. |
| Bold | FontWeight barındırılan öğede | İse Boldtrue , FontWeight olarak ayarlanır Bold .İse Bold false , FontWeight olarak ayarlanır Normal . |
| Italic | FontStyle barındırılan öğede | İse Italictrue , FontStyle olarak ayarlanır Italic .İse Italic false , FontStyle olarak ayarlanır Normal . |
| Strikeout | TextDecorations barındırılan öğede | Yalnızca bir denetim barındırırken geçerlidir TextBlock . |
| Underline | TextDecorations barındırılan öğede | Yalnızca bir denetim barındırırken geçerlidir TextBlock . |
| RightToLeft (System.Windows.Forms.RightToLeft) |
FlowDirection (FlowDirection) |
No ile eşlenir LeftToRight . Yes ile eşlenir RightToLeft . |
| Visible | Visibility | ElementHostDenetim, Visibility barındırılan öğedeki özelliği aşağıdaki kuralları kullanarak ayarlar: - Visible = true ile eşlenir Visible .- Visible = false ile eşlenir Hidden . |