Windows Forms och WPF-egenskapsmappning

Windows Forms- och WPF-teknikerna har två liknande men olika egenskapsmodeller. Egenskapsmappning stöder samverkan mellan de två arkitekturerna och tillhandahåller följande funktioner:

  • Gör det enkelt att mappa relevanta egenskapsändringar i värdmiljön till den värdbaserade kontrollen eller elementet.

  • Tillhandahåller standardhantering för mappning av de vanligaste egenskaperna.

  • Gör det enkelt att ta bort, åsidosätta eller utöka standardegenskaper.

  • Säkerställer att egenskapsvärdeändringar på värden identifieras automatiskt och översätts till den värdbaserade kontrollen eller elementet.

Anmärkning

Egenskapsändringshändelser sprids inte upp i värdkontroll- eller elementhierarkin. Egenskapsöversättning utförs inte om det lokala värdet för en egenskap inte ändras på grund av direkt inställning, format, arv, databindning eller andra mekanismer som ändrar värdet för egenskapen.

Använd egenskapen PropertyMap på elementet WindowsFormsHost och egenskapen PropertyMap på kontrollen ElementHost för att få åtkomst till egenskapsmappning.

Egenskapsmappning med WindowsFormsHost-elementet

Elementet WindowsFormsHost översätter WPF-standardegenskaper till motsvarande Windows Forms med hjälp av följande översättningstabell.

Värd för Windows Presentation Foundation Windows-formulär Samverkansbeteende
Background

(System.Windows.Media.Brush)
BackColor

(System.Drawing.Color)
Elementet WindowsFormsHost anger egenskapen för BackColor den värdbaserade kontrollen och BackgroundImage egenskapen för den värdbaserade kontrollen. Mappningen utförs med hjälp av följande regler:

– Om Background är en solid färg konverteras den och används för att ange BackColor egenskapen för den värdbaserade kontrollen. Egenskapen BackColor har inte angetts för den värdbaserade kontrollen eftersom den värdbaserade kontrollen kan ärva värdet för BackColor egenskapen. Obs: Värdkontrollen stöder inte transparens. Alla färger som tilldelats måste BackColor vara helt ogenomskinliga, med ett alfavärde på 0xFF.

– Om Background inte är en solid färg, skapar kontrollen en bitmapp från egenskapen WindowsFormsHost. Kontroll WindowsFormsHost tilldelar denna bitmap till egenskapen BackgroundImage för den värdsatta kontrollen. Detta ger en effekt som liknar transparens. Not: Du kan åsidosätta det här beteendet eller ta bort egenskapsmappningen Background .
Cursor Cursor Om standardmappningen inte har ändrats kommer WindowsFormsHost-kontrollen att gå igenom sin överordnade hierarki tills den hittar en överordnad med Cursor-egenskapen inställd. Det här värdet översätts till närmaste motsvarande Windows Forms-markör.

Om standardmappningen för ForceCursor egenskapen inte har omtilldelats stoppas bläddrering på den första överordnade med ForceCursor inställd på true.
FlowDirection

(System.Windows.FlowDirection)
RightToLeft

(System.Windows.Forms.RightToLeft)
LeftToRight mappar till No.

RightToLeft mappar till Yes.

Inherit är inte kartlagd.

FlowDirection.RightToLeft mappar till RightToLeft.Yes.
FontStyle Style på den värdbaserade kontrollens System.Drawing.Font Uppsättningen WPF-egenskaper översätts till en motsvarande Font. När en av dessa egenskaper ändras skapas en ny Font . För Normal: Italic är inaktiverad. För Italic eller Oblique: Italic är aktiverat.
FontWeight Style på den värdbaserade kontrollens System.Drawing.Font Uppsättningen WPF-egenskaper översätts till en motsvarande Font. När en av dessa egenskaper ändras skapas en ny Font . För Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold eller UltraBold: Bold är aktiverad. För ExtraLight, Light, Normal, Regular, Thineller UltraLight: Bold är inaktiverad.
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
Font

(System.Drawing.Font)
Uppsättningen WPF-egenskaper översätts till en motsvarande Font. När en av dessa egenskaper ändras skapas en ny Font . Den värdbaserade Windows Forms-kontrollen ändrar storlek baserat på teckenstorleken.

Teckenstorleken i WPF uttrycks som en nittiosjättedel av en tum och i Windows Forms som en sjuttiondedel av en tum. Motsvarande konvertering är:

Teckenstorlek för Windows Forms = WPF-teckenstorlek * 72,0 / 96,0.
Foreground

(System.Windows.Media.Brush)
ForeColor

(System.Drawing.Color)
Egenskapsmappningen Foreground utförs med hjälp av följande regler:

- Om Foreground är en SolidColorBrush, använd Color för ForeColor.
– Om Foreground är en GradientBrush, använd färgen på GradientStop med det lägsta förskjutningsvärdet för ForeColor.
- För alla andra Brush-typer, lämna ForeColor oförändrad. Det innebär att standardvärdet används.
IsEnabled Enabled När IsEnabled är inställt anger WindowsFormsHost elementet Enabled egenskapen på den värdbaserade kontrollen.
Padding Padding Alla fyra värdena för Padding egenskapen i den värdbaserade Windows Forms-kontrollen är inställda på samma Thickness värde.

- Värden som är större än MaxValue är inställda på MaxValue.
– Värden som är mindre än MinValue är inställda på MinValue.
Visibility Visible - Visible mappar till Visible = true. Kontrollen för Windows Forms är synlig. Det rekommenderas inte att uttryckligen ange egenskapen Visible på den värdbaserade kontrollen till false.
- Collapsed mappar till Visible = true eller false. Den värdbaserade Windows Forms-kontrollen ritas inte och dess område är komprimerat.
- Hidden : Windows Forms-kontrollen som är värdbaserad upptar utrymme i layouten, men den är inte synlig. I det här fallet är egenskapen inställd på Visibletrue. Det rekommenderas inte att uttryckligen ange egenskapen Visible på den värdbaserade kontrollen till false.

Anslutna egenskaper för containerelement stöds fullt ut av elementet WindowsFormsHost .

Mer information finns i Genomgång: Mappa egenskaper med hjälp av WindowsFormsHost-elementet.

Uppdateringar av överordnade egenskaper

Ändringar i de flesta överordnade egenskaper föranleder meddelanden till det hostade barnkontrollen. I följande lista beskrivs egenskaper som inte orsakar meddelanden när deras värden ändras.

Om du till exempel ändrar värdet Background för -egenskapen för elementet WindowsFormsHostBackColor ändras inte egenskapen för den värdbaserade kontrollen.

Egenskapsmappning med ElementHost-kontrollen

Följande egenskaper ger inbyggda ändringsmeddelanden. Anropa inte metoden OnPropertyChanged när du mappar dessa egenskaper:

  • Automatisk storlek

  • Bakgrundsfärg

  • Bakgrundsbild

  • Bakgrundsbildslayout

  • BindingContext

  • CausesValidation

  • Kontextmeny

  • ContextMenuStrip

  • Markör

  • Docka

  • Aktiverad

  • Teckensnitt

  • ForeColor

  • Plats

  • Marginal

  • Utfyllnad

  • Förälder

  • Region

  • Höger till vänster

  • Storlek

  • TabIndex

  • TabStop

  • SMS

  • Synlig

Kontrollen ElementHost översätter standardegenskaperna för Windows Forms till deras WPF-motsvarigheter med hjälp av följande översättningstabell.

Mer information finns i Genomgång: Mappa egenskaper med hjälp av ElementHost-kontrollen.

Hosting av Windows Forms Windows Presentation Foundation Samverkansbeteende
BackColor

(System.Drawing.Color)
Background

(System.Windows.Media.Brush) på det värdbaserade elementet
Om du anger den här egenskapen måste du ange en ommålning med en ImageBrush. Om egenskapen BackColorTransparent är inställd till false (standardvärdet) baseras detta ImageBrushElementHost-kontrollens utseende, inklusive dess egenskaper BackColor, BackgroundImage, BackgroundImageLayout, och eventuella bifogade färghanterare.

Om egenskapen BackColorTransparent har angetts till true, baseras ImageBrush på utseendet av kontrollens överordnade ElementHost, inklusive den överordnade kontrollens BackColor, BackgroundImage, BackgroundImageLayout egenskaper och eventuella bifogade målningshanterare.
BackgroundImage

(System.Drawing.Image)
Background

(System.Windows.Media.Brush) på det värdbaserade elementet
Om du anger den här egenskapen får du samma beteende som beskrivs för mappningen BackColor .
BackgroundImageLayout Background

(System.Windows.Media.Brush) på det värdbaserade elementet
Om du anger den här egenskapen får du samma beteende som beskrivs för mappningen BackColor .
Cursor

(System.Windows.Forms.Cursor)
Cursor

(System.Windows.Input.Cursor)
Standardmarkören för Windows Forms översätts till motsvarande WPF-standardmarkör. Om Windows Forms inte är en standardmarkör tilldelas standardvärdet.
Enabled IsEnabled När Enabled är angiven ställer ElementHost kontrollen in IsEnabled-egenskapen på det hostade elementet.
Font

(System.Drawing.Font)
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
Värdet Font översätts till en motsvarande uppsättning WPF-teckensnittsegenskaper.
Bold FontWeight på värdbaserat element Om Bold är true, så är värdet för FontWeight inställt på Bold.

Om Bold är false, så är värdet för FontWeight inställt på Normal.
Italic FontStyle på värdbaserat element Om Italic är true, så är värdet för FontStyle inställt på Italic.

Om Italic är false, så är värdet för FontStyle inställt på Normal.
Strikeout TextDecorations på värdbaserat element Gäller endast när du hanterar en TextBlock kontroll.
Underline TextDecorations på värdbaserat element Gäller endast när du hanterar en TextBlock kontroll.
RightToLeft

(System.Windows.Forms.RightToLeft)
FlowDirection

(FlowDirection)
No mappar till LeftToRight.

Yes mappar till RightToLeft.
Visible Visibility Kontrollen ElementHost anger Visibility egenskapen för det värdbaserade elementet med hjälp av följande regler:

- Visible = true mappar till Visible.
- Visible = false mappar till Hidden.

Se även