Delen via


Toewijzing van Windows-formulieren en WPF-eigenschappen

De Windows Forms- en WPF-technologieën hebben twee vergelijkbare maar verschillende eigenschapsmodellen. Eigenschapstoewijzing ondersteunt interoperation tussen de twee architecturen en biedt de volgende mogelijkheden:

  • Hiermee kunt u eenvoudig relevante eigenschapswijzigingen in de hostomgeving toewijzen aan het gehoste besturingselement of element.

  • Biedt standaardafhandeling voor het toewijzen van de meest gebruikte eigenschappen.

  • Hiermee kunt u eenvoudig verwijderen, overschrijven of uitbreiden van standaardeigenschappen.

  • Zorgt ervoor dat eigenschapswaardewijzigingen op de host automatisch worden gedetecteerd en vertaald naar het gehoste besturingselement of element.

Opmerking

Gebeurtenissen voor het wijzigen van eigenschappen worden niet doorgegeven aan de hostcontrole of de elementhiërarchie. Eigenschapsvertaling wordt niet uitgevoerd als de lokale waarde van een eigenschap niet verandert vanwege directe instelling, stijlen, overname, gegevensbinding of andere mechanismen die de waarde van de eigenschap wijzigen.

Gebruik de PropertyMap eigenschap voor het WindowsFormsHost element en de PropertyMap eigenschap op het ElementHost besturingselement om toegang te krijgen tot eigenschapstoewijzing.

Eigenschapstoewijzing met het element WindowsFormsHost

Het WindowsFormsHost element vertaalt standaard WPF-eigenschappen naar hun Windows Forms-equivalenten met behulp van de volgende vertaaltabel.

Windows Presentation Foundation hosten Windows Forms Interoperatiegedrag
Background

(System.Windows.Media.Brush)
BackColor

(System.Drawing.Color)
Het WindowsFormsHost element stelt de BackColor eigenschap van het gehoste besturingselement en de BackgroundImage eigenschap van het gehoste besturingselement in. Mapping wordt uitgevoerd door gebruik te maken van de volgende regels:

- Als Background een effen kleur is, wordt deze geconverteerd en gebruikt om de BackColor eigenschap van het besturingselement in te stellen. De BackColor eigenschap is niet ingesteld op het gehoste besturingselement, omdat het gehoste besturingselement de waarde van de BackColor eigenschap kan overnemen. Notitie: Het gehoste besturingselement biedt geen ondersteuning voor transparantie. Elke kleur waaraan is toegewezen BackColor , moet volledig ondoorzichtig zijn, met een alfawaarde van 0xFF.

- Als Background geen effen kleur is, maakt de WindowsFormsHost controle een bitmap van de Background eigenschap. Het WindowsFormsHost controle-element wijst deze bitmap toe aan de BackgroundImage eigenschap van het gehoste controle-element. Dit biedt een effect dat vergelijkbaar is met transparantie. Notitie: U kunt dit gedrag negeren of u kunt de Background eigenschapstoewijzing verwijderen.
Cursor Cursor Als de standaardtoewijzing niet opnieuw is toegewezen, doorloopt WindowsFormsHost het besturingselement de hiërarchie van voorouders totdat er een voorouder wordt gevonden met de Cursor eigenschap ingesteld. Deze waarde wordt vertaald naar de dichtstbijzijnde bijbehorende Windows Forms-cursor.

Als de standaardtoewijzing voor de ForceCursor eigenschap niet opnieuw is toegewezen, stopt de traversale actie bij de eerste bovenliggende eigenschap met ForceCursor ingesteld op true.
FlowDirection

(System.Windows.FlowDirection)
RightToLeft

(System.Windows.Forms.RightToLeft)
LeftToRight wordt toegewezen aan No.

RightToLeft wordt toegewezen aan Yes.

Inherit is niet toegewezen.

FlowDirection.RightToLeft wordt toegewezen aan RightToLeft.Yes.
FontStyle Style op het gehoste besturingselement System.Drawing.Font De set WPF-eigenschappen wordt omgezet in een bijbehorende Font. Wanneer een van deze eigenschappen wordt gewijzigd, wordt er een nieuwe Font gemaakt. Voor Normal: Italic is uitgeschakeld. Voor Italic of Oblique: Italic is ingeschakeld.
FontWeight Style op het gehoste besturingselement System.Drawing.Font De set WPF-eigenschappen wordt omgezet in een bijbehorende Font. Wanneer een van deze eigenschappen wordt gewijzigd, wordt er een nieuwe Font gemaakt. Voor Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold, of UltraBold: Bold is ingeschakeld. Voor ExtraLight, Light, Normal, Regular, Thin, of UltraLight: Bold is uitgeschakeld.
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
Font

(System.Drawing.Font)
De set WPF-eigenschappen wordt omgezet in een bijbehorende Font. Wanneer een van deze eigenschappen wordt gewijzigd, wordt er een nieuwe Font gemaakt. De grootte van het gehoste Besturingselement Windows Forms wordt aangepast op basis van de tekengrootte.

Lettergrootte in WPF wordt uitgedrukt als een zesennegentigste van een inch, en in Windows Forms als een tweeënzeventigste van een inch. De bijbehorende conversie is:

Tekengrootte van Windows Forms = WPF-tekengrootte * 72.0 / 96.0.
Foreground

(System.Windows.Media.Brush)
ForeColor

(System.Drawing.Color)
De Foreground eigenschaptoewijzing wordt uitgevoerd met behulp van de volgende regels:

- Als Foreground een SolidColorBrush is, gebruik Color voor ForeColor.
- Als Foreground een GradientBrush is, gebruikt u de kleur van de GradientStop met de laagste offsetwaarde voor ForeColor.
- Voor elk ander Brush type laat u ForeColor ongewijzigd. Dit betekent dat de standaardwaarde wordt gebruikt.
IsEnabled Enabled Wanneer IsEnabled is ingesteld, stelt het WindowsFormsHost-element de Enabled-eigenschap in voor het gehoste besturingselement.
Padding Padding Alle vier de waarden van de Padding eigenschap op het gehoste Besturingselement Windows Forms worden ingesteld op dezelfde Thickness waarde.

- Waarden groter dan MaxValue zijn ingesteld op MaxValue.
- Waarden kleiner dan MinValue zijn ingesteld op MinValue.
Visibility Visible - Visible wordt toegewezen aan Visible = true. Het Windows Forms-besturingselement dat wordt gehost, is zichtbaar. Het expliciet instellen van de eigenschap Visible op false van het gehoste besturingselement wordt niet aanbevolen.
- Collapsedwordt toegewezen aan Visible = true of .false Het Windows Forms-besturingselement wordt niet getekend en zijn gebied stort in.
- Hidden : Het Windows Forms-besturingselement neemt ruimte in de indeling in beslag, maar is niet zichtbaar. In dit geval is de Visible eigenschap ingesteld op true. Het expliciet instellen van de eigenschap Visible op false van het gehoste besturingselement wordt niet aanbevolen.

Gekoppelde eigenschappen op containerelementen worden volledig ondersteund door het WindowsFormsHost element.

Zie Handleiding: Eigenschappen toewijzen met behulp van het WindowsFormsHost-element voor meer informatie.

Updates voor oudere eigenschappen

Wijzigingen in de meeste eigenschappen van de bovenliggende elementen zorgen voor meldingen aan het gehoste onderliggende besturingselement. In de volgende lijst worden eigenschappen beschreven die geen meldingen veroorzaken wanneer hun waarden veranderen.

Als u bijvoorbeeld de waarde van de Background eigenschap van het WindowsFormsHost element wijzigt, wordt de BackColor eigenschap van het gehoste besturingselement niet gewijzigd.

Eigenschapstoewijzing met het ElementHost-besturingselement

De volgende eigenschappen bieden ingebouwde wijzigingsmeldingen. Roep de OnPropertyChanged methode niet aan wanneer u bezig bent deze eigenschappen in kaart te brengen.

  • Automatisch aanpassen

  • Achtergrondkleur

  • Achtergrondafbeelding

  • Achtergrondafbeeldingindeling

  • BindingContext

  • ValidatieVerzekeren

  • Context-menu

  • ContextmenuStrip

  • Aanwijzer

  • Dockingstation

  • Ingeschakeld

  • Lettertype

  • ForeColor

  • Locatie

  • Marge

  • Opvulling

  • Ouder

  • Regio

  • VanRechtsNaarLinks

  • Grootte

  • TabIndex

  • Tabstop

  • Tekst

  • Zichtbaar

Het ElementHost besturingselement vertaalt standaardeigenschappen van Windows Forms naar hun WPF-equivalenten met behulp van de volgende vertaaltabel.

Voor meer informatie, zie Walkthrough: Eigenschappen toewijzen met behulp van de ElementHost-control.

Hosting van Windows Forms Windows Presentation Foundation Interoperatiegedrag
BackColor

(System.Drawing.Color)
Background

(System.Windows.Media.Brush) op het gehoste element
Als u deze eigenschap instelt, wordt de repaint uitgevoerd met een ImageBrush element. Als de BackColorTransparent eigenschap is ingesteld op false (de standaardwaarde), is dit ImageBrush gebaseerd op het uiterlijk van het ElementHost besturingselement, inclusief de BackColor, BackgroundImage en BackgroundImageLayout eigenschappen, en eventuele gekoppelde verwerkingsmodules.

Als de BackColorTransparent eigenschap is ingesteld op true, is de ImageBrush gebaseerd op het uiterlijk van het bovenliggende ElementHost-besturingselement, inclusief de eigenschappen van het bovenliggende BackColor, BackgroundImage, BackgroundImageLayout en eventuele bijgevoegde verwerkingssystemen voor verf.
BackgroundImage

(System.Drawing.Image)
Background

(System.Windows.Media.Brush) op het gehoste element
Als u deze eigenschap instelt, wordt hetzelfde gedrag veroorzaakt dat wordt beschreven voor de BackColor toewijzing.
BackgroundImageLayout Background

(System.Windows.Media.Brush) op het gehoste element
Als u deze eigenschap instelt, wordt hetzelfde gedrag veroorzaakt dat wordt beschreven voor de BackColor toewijzing.
Cursor

(System.Windows.Forms.Cursor)
Cursor

(System.Windows.Input.Cursor)
De standaardcursor van Windows Forms wordt vertaald naar de bijbehorende WPF-standaardcursor. Als de Windows Forms geen standaardcursor is, wordt de standaardwaarde toegewezen.
Enabled IsEnabled Wanneer Enabled dit is ingesteld, stelt het ElementHost besturingselement de IsEnabled eigenschap in op het gehoste element.
Font

(System.Drawing.Font)
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
De Font waarde wordt omgezet in een bijbehorende set WPF-lettertype-eigenschappen.
Bold FontWeight op gehoste element Als Boldtrue is, wordt FontWeight ingesteld op Bold.

Als Boldfalse is, wordt FontWeight ingesteld op Normal.
Italic FontStyle op gehoste element Als Italictrue is, wordt FontStyle ingesteld op Italic.

Als Italicfalse is, wordt FontStyle ingesteld op Normal.
Strikeout TextDecorations op gehoste element Is alleen van toepassing wanneer u een TextBlock bedieningselement host.
Underline TextDecorations op gehoste element Is alleen van toepassing wanneer u een TextBlock bedieningselement host.
RightToLeft

(System.Windows.Forms.RightToLeft)
FlowDirection

(FlowDirection)
No wordt toegewezen aan LeftToRight.

Yes wordt toegewezen aan RightToLeft.
Visible Visibility Het ElementHost besturingselement stelt de Visibility eigenschap voor het gehoste element in met behulp van de volgende regels:

- Visible = true wordt toegewezen aan Visible.
- Visible = false wordt toegewezen aan Hidden.

Zie ook