Mapování vlastnosti Windows Forms a WPF
Technologie model Windows Forms a WPF mají dva podobné, ale různé modely vlastností. Mapování vlastností podporuje spolupráci mezi těmito dvěma architekturami a poskytuje následující možnosti:
Usnadňuje mapování relevantních změn vlastností v hostitelském prostředí na hostovaný ovládací prvek nebo prvek.
Poskytuje výchozí zpracování pro mapování nejčastěji používaných vlastností.
Umožňuje snadné odebrání, přepsání nebo rozšíření výchozích vlastností.
Zajišťuje, aby změny hodnot vlastností na hostiteli byly automaticky zjištěny a přeloženy do hostovaného ovládacího prvku nebo prvku.
Poznámka:
Události změny vlastností se nerozšíří do hostitelského ovládacího prvku nebo hierarchie prvků. Překlad vlastností se neprovádí, pokud se místní hodnota vlastnosti nezmění z důvodu přímého nastavení, stylů, dědičnosti, datové vazby nebo jiných mechanismů, které mění hodnotu vlastnosti.
PropertyMap Pro přístup k mapování vlastností použijte vlastnost u WindowsFormsHost elementu PropertyMap a vlastnosti ElementHost ovládacího prvku.
Mapování vlastností pomocí elementu WindowsFormsHost
Element WindowsFormsHost přeloží výchozí vlastnosti WPF na jejich model Windows Forms ekvivalenty pomocí následující tabulky překladu.
Hostování windows Presentation Foundation | Windows Forms | Chování spolupráce |
---|---|---|
Background (System.Windows.Media.Brush) |
BackColor (System.Drawing.Color) |
Element WindowsFormsHost nastaví BackColor vlastnost hostovaného ovládacího prvku a BackgroundImage vlastnost hostovaného ovládacího prvku. Mapování se provádí pomocí následujících pravidel: - Pokud Background je plná barva, je převedena a slouží k nastavení BackColor vlastnosti hostovaného ovládacího prvku. Vlastnost BackColor není nastavena na hostovaný ovládací prvek, protože hostovaný ovládací prvek může dědit hodnotu BackColor vlastnosti. Poznámka: Hostovaný ovládací prvek nepodporuje transparentnost. Všechny barvy přiřazené BackColor musí být zcela neprůsvitné s alfa hodnotou 0xFF. - Pokud Background není plná barva, WindowsFormsHost ovládací prvek vytvoří bitmapu z Background vlastnosti. Ovládací WindowsFormsHost prvek přiřadí tento rastrový obrázek vlastnosti BackgroundImage hostovaného ovládacího prvku. To poskytuje efekt, který je podobný transparentnosti. Poznámka: Toto chování můžete přepsat nebo můžete mapování vlastností odebrat Background . |
Cursor | Cursor | Pokud výchozí mapování nebylo znovu přiřazeno, ovládací prvek prochází svojí nadřazenou hierarchií, WindowsFormsHost dokud nenajde nadřazeného objektu s jeho Cursor sadou vlastností. Tato hodnota se přeloží na nejbližší odpovídající model Windows Forms kurzoru. Pokud výchozí mapování vlastnosti ForceCursor nebylo znovu přiřazeno, procházení se zastaví u prvního nadřazeného objektu s nastavenou ForceCursor hodnotou true . |
FlowDirection (System.Windows.FlowDirection) |
RightToLeft (System.Windows.Forms.RightToLeft) |
LeftToRight mapuje na No. RightToLeft mapuje na Yes. Inherit není namapován. FlowDirection.RightToLeft mapuje na RightToLeft.Yes. |
FontStyle | Style na hostované ovládacím prvku System.Drawing.Font | Sada vlastností WPF je přeložena do odpovídající Font. Když se změní jedna z těchto vlastností, vytvoří se nová Font . Pro Normal: Italic je zakázáno. Pro Italic nebo Oblique: Italic je povolena. |
FontWeight | Style na hostované ovládacím prvku System.Drawing.Font | Sada vlastností WPF je přeložena do odpovídající Font. Když se změní jedna z těchto vlastností, vytvoří se nová Font . Pro Black, , DemiBoldBold, , ExtraBold, , SemiBoldHeavyMediumnebo UltraBold: Bold je povolena. Pro ExtraLight, , NormalLight, , Regular, Thinnebo UltraLight: Bold je zakázáno. |
FontFamily FontSize FontStretch FontStyle FontWeight |
Font (System.Drawing.Font) |
Sada vlastností WPF je přeložena do odpovídající Font. Když se změní jedna z těchto vlastností, vytvoří se nová Font . Hostovaný model Windows Forms ovládací prvek změní velikost na základě velikosti písma. Velikost písma ve WPF je vyjádřena jako jedna devadesátá šestá z palce a v model Windows Forms jako jedna 000 sekund palce. Odpovídající převod je: model Windows Forms velikost písma = velikost písma WPF * 72.0 / 96.0. |
Foreground (System.Windows.Media.Brush) |
ForeColor (System.Drawing.Color) |
Mapování Foreground vlastností se provádí pomocí následujících pravidel: - Je-li Foreground , SolidColorBrushpoužití Color pro ForeColor. - Pokud Foreground je , GradientBrushpoužijte barvu GradientStop s nejnižší hodnotou posunu pro ForeColor. - U jakéhokoli jiného Brush typu ponechte ForeColor beze změny. To znamená, že se použije výchozí hodnota. |
IsEnabled | Enabled | Při IsEnabled nastavení WindowsFormsHost element nastaví Enabled vlastnost hostovaného ovládacího prvku. |
Padding | Padding | Všechny čtyři hodnoty Padding vlastnosti v hostované model Windows Forms ovládacím prvku jsou nastaveny na stejnou Thickness hodnotu. - Hodnoty větší, než MaxValue jsou nastaveny .MaxValue - Hodnoty menší, než MinValue jsou nastaveny MinValue. |
Visibility | Visible | - Visible mapuje na Visible = true . Hostovaný ovládací prvek model Windows Forms je viditelný. Explicitní nastavení Visible vlastnosti hostovaného ovládacího prvku false se nedoporučuje.- Collapsedmapuje na Visible = true nebo .false Hostovaný ovládací prvek model Windows Forms není vykreslen a jeho oblast je sbalená.- Hidden: Hostovaný ovládací prvek model Windows Forms zabírá prostor v rozložení, ale není viditelný. V tomto případě Visible je vlastnost nastavena na true hodnotu . Explicitní nastavení Visible vlastnosti hostovaného ovládacího prvku false se nedoporučuje. |
Prvek plně podporuje připojené vlastnosti prvků kontejneru WindowsFormsHost .
Další informace naleznete v tématu Návod: Mapování vlastností pomocí elementu WindowsFormsHost.
Aktualizace nadřazených vlastností
Změny většiny nadřazených vlastností způsobují oznámení hostovaného podřízeného ovládacího prvku. Následující seznam popisuje vlastnosti, které nezpůsobují oznámení při změně jejich hodnot.
Pokud například změníte hodnotu Background vlastnosti WindowsFormsHost prvku, BackColor vlastnost hostovaného ovládacího prvku se nezmění.
Mapování vlastností pomocí ovládacího prvku ElementHost
Následující vlastnosti poskytují integrované oznámení o změnách. Při mapování těchto vlastností nevolejte metodu OnPropertyChanged :
AutoSize
Backcolor
Backgroundimage
Backgroundimagelayout
Bindingcontext
Causesvalidation
ContextMenu
ContextMenuStrip
Kurzor
Dock
Povoleno
Písmo
Forecolor
Poloha
Margin
Odsazení
Parent
Oblast
RightToLeft
Velikost
TabIndex
Tabstop
Text
Viditelná
Ovládací ElementHost prvek přeloží výchozí model Windows Forms vlastnosti na jejich ekvivalenty WPF pomocí následující tabulky překladu.
Další informace naleznete v tématu Návod: Mapování vlastností pomocí elementHost ovládacího prvku.
hostování model Windows Forms | Windows Presentation Foundation | Chování spolupráce |
---|---|---|
BackColor (System.Drawing.Color) |
Background (System.Windows.Media.Brush) v hostované elementu |
Nastavení této vlastnosti vynutí překreslení pomocí objektu ImageBrush. BackColorTransparent Pokud je vlastnost nastavena na false (výchozí hodnota), je to ImageBrush založeno na vzhledu ElementHost ovládacího prvku, včetně jeho BackColor, , BackgroundImageBackgroundImageLayout vlastnosti a všechny připojené obslužné rutiny barvy.BackColorTransparent Pokud je vlastnost nastavena true na , ImageBrush je založen na vzhledu ElementHost nadřazeného ovládacího prvku, včetně nadřazeného BackColorobjektu , BackgroundImage, BackgroundImageLayout vlastnosti a všechny připojené obslužné rutiny barvy. |
BackgroundImage (System.Drawing.Image) |
Background (System.Windows.Media.Brush) v hostované elementu |
Nastavení této vlastnosti způsobí stejné chování, které je popsáno BackColor pro mapování. |
BackgroundImageLayout | Background (System.Windows.Media.Brush) v hostované elementu |
Nastavení této vlastnosti způsobí stejné chování, které je popsáno BackColor pro mapování. |
Cursor (System.Windows.Forms.Cursor) |
Cursor (System.Windows.Input.Cursor) |
Standardní kurzor model Windows Forms se přeloží na odpovídající standardní kurzor WPF. Pokud model Windows Forms není standardní kurzor, přiřadí se výchozí hodnota. |
Enabled | IsEnabled | Když Enabled je nastavena, ElementHost ovládací prvek nastaví IsEnabled vlastnost hostovaný element. |
Font (System.Drawing.Font) |
FontFamily FontSize FontStretch FontStyle FontWeight |
Hodnota Font se přeloží do odpovídající sady vlastností písma WPF. |
Bold | FontWeight on hosted element | Pokud Bold je true , FontWeight je nastavena na Bold.Pokud Bold je false , FontWeight je nastavena na Normal. |
Italic | FontStyle on hosted element | Pokud Italic je true , FontStyle je nastavena na Italic.Pokud Italic je false , FontStyle je nastavena na Normal. |
Strikeout | TextDecorations on hosted element | Platí pouze při hostování TextBlock ovládacího prvku. |
Underline | TextDecorations on hosted element | Platí pouze při hostování TextBlock ovládacího prvku. |
RightToLeft (System.Windows.Forms.RightToLeft) |
FlowDirection (FlowDirection) |
No mapuje na LeftToRight. Yes mapuje na RightToLeft. |
Visible | Visibility | Ovládací ElementHost prvek nastaví Visibility vlastnost hostovaného elementu pomocí následujících pravidel: - Visible = true mapuje na Visible.- Visible = false mapuje na Hidden. |
Viz také
.NET Desktop feedback