Mapování vlastnosti Windows Forms a WPF

Model Windows Forms a WPF technologie mají dva podobné modely vlastností, ale různé. Mapování vlastností podporuje vzájemné operace 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 rozpoznány a přeloženy do hostovaného ovládacího prvku nebo elementu.

Poznámka

Události změny vlastností nejsou šířeny do hostitelského ovládacího prvku nebo hierarchie elementu. Převod vlastností se neprovede, pokud se místní hodnota vlastnosti nemění kvůli přímému nastavení, stylům, dědičnosti, datové vazbě nebo jiným mechanismům, které mění hodnotu vlastnosti.

PropertyMap WindowsFormsHost Pro přístup k mapování vlastností použijte vlastnost u elementu a PropertyMap vlastnost ElementHost ovládacího prvku.

Mapování vlastností pomocí elementu WindowsFormsHost

WindowsFormsHostPrvek překládá výchozí WPF vlastnosti na jejich model Windows Forms ekvivalenty pomocí následující tabulky překladu.

Windows Presentation Foundation hostování Windows Forms Chování mezi operacemi
Background

(System.Windows.Media.Brush)
BackColor

(System.Drawing.Color)
WindowsFormsHostElement 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 použita k nastavení BackColor vlastnosti hostovaného ovládacího prvku. BackColorVlastnost není nastavena u hostovaného ovládacího prvku, protože hostovaný ovládací prvek může dědit hodnotu BackColor Vlastnosti. Poznámka: Hostovaný ovládací prvek nepodporuje transparentnost. Jakákoli Barva přiřazená k BackColor musí být plně neprůhledná, s hodnotou alfa typu 0xFF.

-Pokud Background není plná barva, WindowsFormsHost ovládací prvek vytvoří rastrový obrázek z Background Vlastnosti. WindowsFormsHostOvládací prvek přiřadí tento rastrový obrázek k BackgroundImage vlastnosti hostovaného ovládacího prvku. To poskytuje efekt podobný transparentnosti. Poznámka: Toto chování můžete přepsat nebo můžete odebrat Background mapování vlastností.
Cursor Cursor Pokud nebylo znovu přiřazeno výchozí mapování, WindowsFormsHost ovládací prvek projde svou nadřazenou hierarchii, dokud nenajde nadřazený objekt se Cursor sadou vlastností. Tato hodnota je přeložena na nejbližší odpovídající model Windows Forms kurzor.

Pokud nebylo ForceCursor znovu přiřazeno výchozí mapování vlastnosti, procházení se zastaví na prvním předchůdce s ForceCursor nastavením na true .
FlowDirection

(System.Windows.FlowDirection)
RightToLeft

(System.Windows.Forms.RightToLeft)
LeftToRight provede mapování na No .

RightToLeft provede mapování na Yes .

Inherit není namapováno.

FlowDirection.RightToLeft provede mapování na RightToLeft.Yes .
FontStyle Style v hostovaném ovládacím prvku System.Drawing.Font Sada WPF vlastností je přeložena do odpovídající Font . Když se jedna z těchto vlastností změní, vytvoří Font se nový. Pro Normal : Italic je zakázané. Pro Italic nebo Oblique : Italic je povolen.
FontWeight Style v hostovaném ovládacím prvku System.Drawing.Font Sada WPF vlastností je přeložena do odpovídající Font . Když se jedna z těchto vlastností změní, vytvoří Font se nový. Pro Black , Bold , DemiBold , ExtraBold , Heavy , Medium , SemiBold , nebo UltraBold : Bold jsou povoleny. Pro ExtraLight , Light , Normal , Regular , Thin nebo UltraLight : Bold je zakázána.
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
Font

(System.Drawing.Font)
Sada WPF vlastností je přeložena do odpovídající Font . Když se jedna z těchto vlastností změní, vytvoří Font se nový. Velikost hostovaného model Windows Forms ovládacího prvku se změní na základě velikosti písma.

Velikost písma v WPF je vyjádřena jako jedna devadesátá šestá palce a v model Windows Forms jako jedna Seventy palce. Odpovídající převod je:

Velikost písma model Windows Forms = WPF Velikost písma * 72,0/96,0.
Foreground

(System.Windows.Media.Brush)
ForeColor

(System.Drawing.Color)
ForegroundMapování vlastností se provádí pomocí následujících pravidel:

– Pokud Foreground je SolidColorBrush , použijte Color pro ForeColor .
-Pokud Foreground je GradientBrush , použijte barvu GradientStop s nejnižší hodnotou posunu pro ForeColor .
– Pro jakýkoliv jiný Brush typ ponechte ForeColor beze změny. To znamená, že se použije výchozí hodnota.
IsEnabled Enabled Pokud IsEnabled je nastaveno, WindowsFormsHost element nastaví Enabled vlastnost v hostovaném ovládacím prvku.
Padding Padding Všechny čtyři hodnoty Padding vlastnosti v hostovaném ovládacím prvku model Windows Forms jsou nastaveny na stejnou Thickness hodnotu.

-Hodnoty větší než MaxValue jsou nastaveny na MaxValue .
-Hodnoty menší než MinValue jsou nastaveny na MinValue .
Visibility Visible - Visibleprovede mapování na Visible = true . Ovládací prvek hostovaného model Windows Forms je viditelný. Explicitní nastavení Visible vlastnosti u hostovaného ovládacího prvku na není false doporučeno.
- Collapsedprovede mapování na Visible = true nebo false . Ovládací prvek hostovaného model Windows Forms není vykreslen a jeho oblast je sbalená.
- Hidden : Hostovaný model Windows Forms ovládací prvek zabírá prostor v rozložení, ale není viditelný. V tomto případě Visible je vlastnost nastavena na true . Explicitní nastavení Visible vlastnosti u hostovaného ovládacího prvku na není false doporučeno.

Připojené vlastnosti prvků kontejneru jsou plně podporovány WindowsFormsHost prvkem.

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ému podřízenému ovládacímu prvku. Následující seznam popisuje vlastnosti, které při změně jejich hodnot nezpůsobují oznámení.

Například pokud 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ě. Nevolejte OnPropertyChanged metodu při mapování těchto vlastností:

  • AutoSize

  • BackColor

  • BackgroundImage

  • BackgroundImageLayout

  • BindingContext

  • Vlastnosti CausesValidation

  • ContextMenu

  • ContextMenuStrip

  • Kurzor

  • Vyjměte

  • Povoleno

  • Písmo

  • ForeColor

  • Umístění

  • Margin

  • Odsazení

  • Nadřazený

  • Oblast

  • RightToLeft

  • Velikost

  • Prvku

  • Tabelátor

  • Text

  • Viditelné

ElementHostOvládací prvek přeloží výchozí model Windows Forms vlastností na jejich WPF ekvivalenty pomocí následující tabulky překladu.

Další informace naleznete v tématu Návod: mapování vlastností pomocí ovládacího prvku ElementHost.

model Windows Forms hostování Windows Presentation Foundation Chování mezi operacemi
BackColor

(System.Drawing.Color)
Background

( System.Windows.Media.Brush ) na hostovaném elementu
Nastavení této vlastnosti vynutí překreslení pomocí ImageBrush . Pokud BackColorTransparent je vlastnost nastavena na false (výchozí hodnota), ImageBrush je založena na vzhledu ElementHost ovládacího prvku, včetně jeho BackColor vlastností,, BackgroundImage BackgroundImageLayout vlastností a všech připojených obslužných rutin nátěru.

Pokud BackColorTransparent je vlastnost nastavena na true , ImageBrush je založena na vzhledu ElementHost nadřazeného ovládacího prvku, včetně nadřazeného objektu BackColor , BackgroundImage BackgroundImageLayout vlastnosti a všech připojených obslužných rutin nátěru.
BackgroundImage

(System.Drawing.Image)
Background

( System.Windows.Media.Brush ) na hostovaném elementu
Nastavení této vlastnosti způsobí, že se pro mapování napíše stejné chování BackColor .
BackgroundImageLayout Background

( System.Windows.Media.Brush ) na hostovaném elementu
Nastavení této vlastnosti způsobí, že se pro mapování napíše stejné chování BackColor .
Cursor

(System.Windows.Forms.Cursor)
Cursor

(System.Windows.Input.Cursor)
Kurzor model Windows Forms Standard je přeložen na odpovídající WPF standardní kurzor. Pokud model Windows Forms není standardní kurzor, je přiřazena výchozí hodnota.
Enabled IsEnabled Když Enabled je nastaveno, ElementHost ovládací prvek nastaví IsEnabled vlastnost v hostovaném elementu.
Font

(System.Drawing.Font)
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
FontHodnota je přeložena do odpovídající sady WPF vlastností písma.
Bold FontWeight v hostovaném elementu Pokud Bold je true , FontWeight je nastaveno na Bold .

Pokud Bold je false , FontWeight je nastaveno na Normal .
Italic FontStyle v hostovaném elementu Pokud Italic je true , FontStyle je nastaveno na Italic .

Pokud Italic je false , FontStyle je nastaveno na Normal .
Strikeout TextDecorations v hostovaném elementu Platí pouze při hostování TextBlock ovládacího prvku.
Underline TextDecorations v hostovaném elementu Platí pouze při hostování TextBlock ovládacího prvku.
RightToLeft

(System.Windows.Forms.RightToLeft)
FlowDirection

(FlowDirection)
No provede mapování na LeftToRight .

Yes provede mapování na RightToLeft .
Visible Visibility ElementHostOvládací prvek nastaví Visibility vlastnost u hostovaného elementu pomocí následujících pravidel:

- Visible = true provede mapování na Visible .
- Visible = false provede mapování na Hidden .

Viz také