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 denetim veya öğeyle eşlemeyi kolaylaştırır.
En yaygın kullanılan özellikleri eşlemek için varsayılan işleme sağlar.
Varsayılan özelliklerin kolayca kaldırılmasına, geçersiz kılınmasına veya genişletilmesine olanak tanır.
Konakta özellik değeri değişikliklerinin otomatik olarak algılanmasını ve barındırılan denetime veya öğeye çevrilmesini sağlar.
Dekont
Özellik değişikliği olayları barındırma denetimi veya öğe hiyerarşisinde 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ştirilmez.
PropertyMap özellik eşlemesine WindowsFormsHost erişmek için öğesinde PropertyMap özelliğini ve denetimindeki ElementHost özelliğini kullanın.
WindowsFormsHost Öğesi ile Özellik Eşlemesi
öğesi, WindowsFormsHost aşağıdaki çeviri tablosunu kullanarak varsayılan WPF özelliklerini 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) |
öğesi barındırılan WindowsFormsHostBackColor denetimin özelliğini ve barındırılan BackgroundImage denetimin özelliğini ayarlar. Eşleme aşağıdaki kurallar kullanılarak gerçekleştirilir: - Düz bir renkse Background , dönüştürülür ve barındırılan denetimin BackColor özelliğini ayarlamak için kullanılır. Barındırılan BackColor denetim özelliğin değerini devralabileceğinden, özelliği barındırılan denetimde BackColor ayarlanmadı. Not: Barındırılan denetim saydamlığı desteklemez. Atanan BackColor tüm renkler, alfa değeri 0xFF olan tamamen opak olmalıdır. - Düz bir renk değilse Background , WindowsFormsHost denetim özelliğinden Background bir bit eşlem oluşturur. Denetim, WindowsFormsHost bu bit eşlemi barındırılan BackgroundImage denetimin özelliğine atar. Bu, saydamlığa benzer bir etki sağlar. Not: Bu davranışı geçersiz kılabilir veya özellik eşlemesini Background kaldırabilirsiniz. |
Cursor | Cursor | Varsayılan eşleme yeniden atanmamışsa, WindowsFormsHost denetim özelliği ayarlanmış bir üst öğe bulana kadar üst öğe hiyerarşisinde geçiş gerçekleştirir Cursor . Bu değer, ilgili en yakın Windows Forms imlecine çevrilir. Özelliği için ForceCursor varsayılan eşleme yeniden atanmamışsa, geçiş, olarak ayarlanmış true olan ilk atada ForceCursor durur. |
FlowDirection (System.Windows.FlowDirection) |
RightToLeft (System.Windows.Forms.RightToLeft) |
LeftToRightNoile eşler. RightToLeftYesile eşler. Inherit eşlenmedi. FlowDirection.RightToLeftRightToLeft.Yesile eşler. |
FontStyle | Style barındırılan denetimin System.Drawing.Font | WPF özellikleri kümesi, karşılık gelen öğesine çevrilir Font. Bu özelliklerden biri değiştiğinde yeni Font bir oluşturulur. Italic için Normaldevre dışıdır. veya ObliqueItalic için Italic etkindir. |
FontWeight | Style barındırılan denetimin System.Drawing.Font | WPF özellikleri kümesi, karşılık gelen öğesine çevrilir Font. Bu özelliklerden biri değiştiğinde yeni Font bir oluşturulur. için Black, Bold, DemiBold, ExtraBold, Heavy, , Medium, SemiBoldveya UltraBold: Bold etkindir. için ExtraLight, Light, Normal, Regular, Thinveya UltraLight: Bold devre dışıdır. |
FontFamily FontSize FontStretch FontStyle FontWeight |
Font (System.Drawing.Font) |
WPF özellikleri kümesi, karşılık gelen öğesine çevrilir Font. Bu özelliklerden biri değiştiğinde yeni Font bir oluşturulur. Barındırılan Windows Forms denetimi, yazı tipi boyutuna göre yeniden boyutlandırıldığında. WPF'de yazı tipi boyutu bir inçin doksan altıda biri, Windows Forms'da ise bir inçin yetmiş saniyesi olarak ifade edilir. Buna karşılık gelen dönüştürme: 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 ise ForegroundSolidColorBrush, için ForeColorkullanınColor. - bir ise ForegroundGradientBrush, için en düşük uzaklık değeriyle ForeColordeğerinin rengini GradientStop kullanın. - Başka Brush herhangi bir tür için değişmeden bırakın ForeColor . Bu, varsayılanın kullanıldığı anlamına gelir. |
IsEnabled | Enabled | ayarlandığında IsEnabled , WindowsFormsHost öğesi barındırılan Enabled denetimde özelliğini ayarlar. |
Padding | Padding | Barındırılan Padding Windows Forms denetimindeki özelliğin dört değeri de aynı Thickness değere ayarlanır. - değerinden MaxValue büyük değerler olarak MaxValueayarlanır. - değerinden MinValue küçük değerler olarak MinValueayarlanır. |
Visibility | Visible | - VisibleVisible = true ile eşler. Barındırılan Windows Forms denetimi görünür. Barındırılan Visible denetimdeki özelliği açıkça olarak false olarak ayarlamak önerilmez.- Collapsedveya false ile Visible = true eşler. Barındırılan Windows Forms denetimi çizilmemiş ve alanı daraltılmış.- Hidden : Barındırılan Windows Forms denetimi düzende yer kaplar, ancak görünmez. Bu durumda özelliği Visible olarak true ayarlanır. Barındırılan Visible denetimdeki özelliği açıkça olarak false olarak ayarlamak önerilmez. |
Kapsayıcı öğelerindeki ekli özellikler öğesi tarafından WindowsFormsHost tam olarak desteklenir.
Daha fazla bilgi için bkz . İzlenecek Yol: WindowsFormsHost Öğesini Kullanarak Özellikleri Eşleme.
Üst Özelliklere Güncelleştirmeler
Üst özelliklerin çoğunda yapılan değişiklikler barındırılan alt denetime bildirim göndermeye neden olur. Aşağıdaki listede, değerleri değiştiğinde bildirime neden olmayan özellikler açıklanmaktadır.
Örneğin, öğesinin özelliğinin BackgroundWindowsFormsHost değerini değiştirirseniz, 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 eşlerken yöntemini çağırmayın OnPropertyChanged :
AutoSize
Backcolor
Backgroundımage
Backgroundımagelayout
Bindingcontext
Causesvalidation
ContextMenu
ContextMenuStrip
Imleç
Dock
Etkin
Yazı tipi
Forecolor
Konum
Marj
Doldurma
Parent
Region
RightToLeft
Size
TabIndex
Tabstop
Metin
Görünür
Denetim, ElementHost aşağıdaki çeviri tablosunu kullanarak varsayılan Windows Forms özelliklerini WPF eşdeğerlerine çevirir.
Daha fazla bilgi için bkz . İzlenecek Yol: ElementHost Denetimini Kullanarak Özellikleri Eşleme.
Windows Forms barındırma | Windows Presentation Foundation | Birlikte çalışma davranışı |
---|---|---|
BackColor (System.Drawing.Color) |
Background (System.Windows.Media.Brush) barındırılan öğede |
Bu özelliğin ayarlanması ile ImageBrushyeniden boyamayı zorlar. BackColorTransparent Özelliği (varsayılan değer) olarak ayarlanırsa false , buImageBrush, denetimin ElementHost görünümüne BackColor(, , BackgroundImageBackgroundImageLayout özellikleri ve ekli boya işleyicileri dahil) dayanır.BackColorTransparent özelliği olarak true ImageBrush ayarlanırsa, üst öğesinin ElementHost , BackgroundImageBackgroundImageLayout , özellikleri ve ekli boya işleyicileri de dahil olmak üzere denetimin üst BackColoröğesinin görünümünü temel alır. |
BackgroundImage (System.Drawing.Image) |
Background (System.Windows.Media.Brush) barındırılan öğede |
Bu özelliğin ayarlanması, eşleme için açıklanan davranışa BackColor neden olur. |
BackgroundImageLayout | Background (System.Windows.Media.Brush) barındırılan öğede |
Bu özelliğin ayarlanması, eşleme için açıklanan davranışa BackColor neden olur. |
Cursor (System.Windows.Forms.Cursor) |
Cursor (System.Windows.Input.Cursor) |
Windows Forms standart imleci, karşılık gelen WPF standart imlecine çevrilir. Windows Forms standart bir imleç değilse varsayılan olarak atanır. |
Enabled | IsEnabled | Ayarlandığında Enabled , denetim barındırılan ElementHostIsEnabled öğede özelliğini ayarlar. |
Font (System.Drawing.Font) |
FontFamily FontSize FontStretch FontStyle FontWeight |
Font Değer, karşılık gelen WPF yazı tipi özellikleri kümesine çevrilir. |
Bold | FontWeight barındırılan öğede | ise Boldtrue , FontWeight olarak Boldayarlanır.ise Bold false , FontWeight olarak Normalayarlanır. |
Italic | FontStyle barındırılan öğede | ise Italictrue , FontStyle olarak Italicayarlanır.ise Italic false , FontStyle olarak Normalayarlanır. |
Strikeout | TextDecorations barındırılan öğede | Yalnızca bir TextBlock denetim barındırırken geçerlidir. |
Underline | TextDecorations barındırılan öğede | Yalnızca bir TextBlock denetim barındırırken geçerlidir. |
RightToLeft (System.Windows.Forms.RightToLeft) |
FlowDirection (FlowDirection) |
NoLeftToRightile eşler. YesRightToLeftile eşler. |
Visible | Visibility | Denetim, ElementHost barındırılan Visibility öğedeki özelliğini aşağıdaki kuralları kullanarak ayarlar: - Visible = true Visibleile eşler.- Visible = false Hiddenile eşler. |
Ayrıca bkz.
.NET Desktop feedback