Sdílet prostřednictvím


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 truehodnotu . 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 truena , 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é