Megosztás a következőn keresztül:


Windows Forms és WPF tulajdonságleképezés

A Windows Forms és a WPF technológiák két hasonló, de különböző tulajdonságmodellel rendelkeznek. tulajdonságleképezési támogatja a két architektúra közötti együttműködést, és a következő képességeket biztosítja:

  • Megkönnyíti a gazdakörnyezet releváns tulajdonságmódosításainak hozzárendelését az üzemeltetett vezérlőhöz vagy elemhez.

  • Alapértelmezett kezelést biztosít a leggyakrabban használt tulajdonságok leképezéséhez.

  • Lehetővé teszi az alapértelmezett tulajdonságok egyszerű eltávolítását, felülbírálását vagy kiterjesztését.

  • Biztosítja, hogy a rendszer automatikusan észlelje és lefordítsa a gazda gép tulajdonságérték-változásait az üzemeltetett vezérlőre vagy elemre.

Megjegyzés:

A tulajdonságmódosítási események nem propagálódnak az üzemeltetési vezérlőn vagy az elemhierarchián. A tulajdonságfordítás nem történik meg, ha egy tulajdonság helyi értéke nem változik a tulajdonság értékét módosító közvetlen beállítás, stílusok, öröklés, adatkötés vagy egyéb mechanizmusok miatt.

Használja a PropertyMap elem WindowsFormsHost tulajdonságát, a PropertyMap vezérlőelem ElementHost tulajdonságát pedig a tulajdonságleképezés eléréséhez.

Tulajdonságleképezés a WindowsFormsHost-elemmel

A WindowsFormsHost elem az alábbi fordítási táblázat használatával lefordítja az alapértelmezett WPF-tulajdonságokat a Windows Forms megfelelőire.

A Windows Presentation Foundation üzemeltetése Windows Forms Együttműködés viselkedése
Background

(System.Windows.Media.Brush)
BackColor

(System.Drawing.Color)
A WindowsFormsHost elem beállítja az üzemeltetett vezérlő BackColor tulajdonságát és az üzemeltetett vezérlő BackgroundImage tulajdonságát. A leképezés a következő szabályok használatával történik:

- Ha Background egyszínű, akkor átalakítják és felhasználják az üzemeltetett vezérlő BackColor tulajdonságának beállítására. A BackColor tulajdonság nincs beállítva az üzemeltetett vezérlőn, mert a üzemeltetett vezérlőelem örökölheti a BackColor tulajdonság értékét. Megjegyzés: Az üzemeltetett vezérlő nem támogatja az átláthatóságot. A BackColor hozzárendelt színeknek teljesen átlátszatlannak kell lenniük, 0xFF alfaértékkel.

- Ha Background nem egyszínű, a WindowsFormsHost vezérlőelem bitképet hoz létre a Background tulajdonságból. A WindowsFormsHost vezérlő ezt a bitképet a üzemeltetett vezérlő BackgroundImage tulajdonságához rendeli. Ez az átláthatósághoz hasonló hatást biztosít. Megjegyzés: Felülbírálhatja ezt a viselkedést, vagy eltávolíthatja a Background tulajdonságleképezést.
Cursor Cursor Ha az alapértelmezett megfeleltetés nem lett újra hozzárendelve, a WindowsFormsHost vezérlőelem bejárja az elődhierarchiát, amíg meg nem talál egy elődöt, amelynek a Cursor tulajdonsága be van állítva. Ez az érték a legközelebbi megfelelő Windows Forms-kurzorra lesz lefordítva.

Ha a ForceCursor tulajdonság alapértelmezett leképezése nem lett átrendezve, akkor a bejárás az első olyan elődnél leáll, amelynél a ForceCursor tulajdonság trueértékre lett állítva.
FlowDirection

(System.Windows.FlowDirection)
RightToLeft

(System.Windows.Forms.RightToLeft)
LeftToRight a No-re térképeződik.

RightToLeft a Yes-re térképeződik.

Inherit nincs megfeleltetve.

FlowDirection.RightToLeft a RightToLeft.Yes-re térképeződik.
FontStyle Style a hosztolt vezérlő System.Drawing.Font A WPF-tulajdonságok halmaza a megfelelő Fontelemre lesz átalakítva. A tulajdonságok egyikének módosításakor egy új Font jön létre. Normalesetén: a Italic le van tiltva. Italic vagy Obliqueesetén: a Italic engedélyezve van.
FontWeight Style a hosztolt vezérlő System.Drawing.Font A WPF-tulajdonságok halmaza a megfelelő Fontelemre lesz átalakítva. A tulajdonságok egyikének módosításakor egy új Font jön létre. Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBoldvagy UltraBoldesetén: Bold engedélyezve van. ExtraLight, Light, Normal, Regular, Thinvagy UltraLightesetén: Bold le van tiltva.
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
Font

(System.Drawing.Font)
A WPF-tulajdonságok halmaza a megfelelő Fontelemre lesz átalakítva. A tulajdonságok egyikének módosításakor egy új Font jön létre. Az üzemeltetett Windows Forms vezérlő a betűméret alapján méreteződik át.

A WPF-ben a betűméret egy hüvelyk kilencvenhatod része, a Windows Formsban pedig egy hüvelyk hetvenketted része. A megfelelő átalakítás a következő:

Windows Forms betűméret = WPF betűméret * 72.0 / 96.0.
Foreground

(System.Windows.Media.Brush)
ForeColor

(System.Drawing.Color)
A Foreground tulajdonságleképezés a következő szabályok használatával történik:

- Ha ForegroundSolidColorBrush, használja a Color a ForeColor-hoz.
- Ha a Foreground egy GradientBrush, akkor használja a legalacsonyabb eltolási értékkel rendelkező GradientStop színét a ForeColorszámára.
- Minden más Brush típus esetén hagyja változatlanul ForeColor. Ez azt jelenti, hogy a rendszer az alapértelmezett értéket használja.
IsEnabled Enabled Ha IsEnabled van beállítva, WindowsFormsHost elem beállítja a Enabled tulajdonságot az üzemeltetett vezérlőn.
Padding Padding Az üzemeltetett Windows Forms vezérlőelem Padding tulajdonságának mind a négy értéke ugyanarra a Thickness értékre van állítva.

- A MaxValue értéknél nagyobb értékek MaxValue-re vannak beállítva.
- A MinValue értéknél kisebb értékek MinValueértékre vannak állítva.
Visibility Visible - Visible leképezi Visible = true. Az üzemeltetett Windows Forms vezérlő látható. A Visible tulajdonság kifejezetten false-re történő beállítása az üzemeltetett vezérlőn nem ajánlott.
- Collapsed Visible = true vagy false. Az üzemeltetett Windows Forms vezérlő nincs rajzolva, és a területe összecsukva van.
- Hidden: Az üzemeltetett Windows Forms vezérlő helyet foglal el az elrendezésben, de nem látható. Ebben az esetben a Visible tulajdonság értéke true. A Visible tulajdonság kifejezetten false-re történő beállítása az üzemeltetett vezérlőn nem ajánlott.

A tárolóelemekhez csatolt tulajdonságokat a WindowsFormsHost elem teljes mértékben támogatja.

További információ: Útmutató: Tulajdonságok leképezése a WindowsFormsHost elem használatával.

A szülőtulajdonságok frissítései

A legtöbb szülőtulajdonság módosítása értesítéseket okoz az üzemeltetett gyermekvezérlőnek. Az alábbi lista azokat a tulajdonságokat ismerteti, amelyek nem okoznak értesítéseket az értékek változásakor.

Ha például a Background elem WindowsFormsHost tulajdonságának értékét módosítja, az üzemeltetett vezérlő BackColor tulajdonsága nem változik.

Tulajdonságleképezés az ElementHost-vezérlővel

Az alábbi tulajdonságok beépített változásértesítést biztosítanak. Ne hívja meg a OnPropertyChanged metódust a tulajdonságok leképezésekor:

  • Automatikus méretezés

  • Háttérszín

  • Háttérkép

  • Háttérkép-elrendezés

  • AdatkapcsolatiKörnyezet

  • ÉrvényesítésKiváltása

  • kontextus menü

  • ContextMenuStrip

  • Kurzor

  • Dokk

  • Bekapcsolva

  • Betűtípus

  • ForeColor

  • Elhelyezkedés

  • Margó

  • Belső margó

  • Szülő

  • Régió

  • Jobbról balra

  • Méret

  • TabIndex

  • TabStop

  • Szöveg

  • Látható

A ElementHost vezérlő az alábbi fordítási táblázat használatával lefordítja az alapértelmezett Windows Forms-tulajdonságokat a WPF-ekvivalensekre.

További információ: Útmutató: Tulajdonságok leképezése az ElementHost-vezérlővel.

Windows Forms üzemeltetése Windows Presentation Foundation Együttműködés viselkedése
BackColor

(System.Drawing.Color)
Background

(System.Windows.Media.Brush) a üzemeltetett elemen
Ha beállítja ezt a tulajdonságot, egy ImageBrushkóddal lesz újra festve. Ha a BackColorTransparent tulajdonság értéke false (az alapértelmezett érték), ez a ImageBrush a ElementHost vezérlőelem megjelenésén alapul, beleértve a BackColor, BackgroundImage, BackgroundImageLayout tulajdonságait és a csatlakoztatott festékkezelőket.

Ha a BackColorTransparent tulajdonság értéke true, akkor a ImageBrush a ElementHost vezérlőelem szülőjének megjelenése alapján van meghatározva, beleértve a szülő BackColor, BackgroundImage, BackgroundImageLayout tulajdonságait és bármely csatolt festékkezelőt is.
BackgroundImage

(System.Drawing.Image)
Background

(System.Windows.Media.Brush) a üzemeltetett elemen
A tulajdonság beállítása ugyanazt a viselkedést eredményezi, amelyet a BackColor-megfeleltetésnél leírtak.
BackgroundImageLayout Background

(System.Windows.Media.Brush) a üzemeltetett elemen
A tulajdonság beállítása ugyanazt a viselkedést eredményezi, amelyet a BackColor-megfeleltetésnél leírtak.
Cursor

(System.Windows.Forms.Cursor)
Cursor

(System.Windows.Input.Cursor)
A Windows Forms standard kurzora a megfelelő WPF standard kurzorra lesz lefordítva. Ha a Windows Forms nem szabványos kurzor, a program az alapértelmezettet rendeli hozzá.
Enabled IsEnabled Ha Enabled van beállítva, a ElementHost vezérlő beállítja a IsEnabled tulajdonságot a üzemeltetett elemen.
Font

(System.Drawing.Font)
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
A Font érték a WPF-betűtípusok megfelelő halmazába lesz lefordítva.
Bold FontWeight tárhelyen lévő elemen Ha Boldtrue, FontWeightBoldértékre van állítva.

Ha Boldfalse, FontWeightNormalértékre van állítva.
Italic FontStyle tárhelyen lévő elemen Ha Italictrue, FontStyleItalicértékre van állítva.

Ha Italicfalse, FontStyleNormalértékre van állítva.
Strikeout TextDecorations tárhelyen lévő elemen Csak TextBlock vezérlőelemek üzemeltetésére vonatkozik.
Underline TextDecorations tárhelyen lévő elemen Csak TextBlock vezérlőelemek üzemeltetésére vonatkozik.
RightToLeft

(System.Windows.Forms.RightToLeft)
FlowDirection

(FlowDirection)
No a LeftToRight-re térképeződik.

Yes a RightToLeft-re térképeződik.
Visible Visibility A ElementHost vezérlőelem az alábbi szabályokkal állítja be a üzemeltetett elem Visibility tulajdonságát:

- Visible = true hozzárendelése Visible-hez.
- Visible = false hozzárendelése Hidden-hez.

Lásd még