Partager via


Mappage de propriétés Windows Forms et WPF

Mise à jour : novembre 2007

Les technologies Windows Forms et WPF ont deux modèles de propriété semblables mais différents. Le mappage de propriété prend en charge l'interopérabilité entre les deux architectures et fournit les fonctionnalités suivantes.

  • Simplifie le mappage des modifications de propriété dans l'environnement hôte au contrôle ou à l'élément hébergé.

  • Fournit la gestion par défaut pour le mappage des propriétés les plus couramment utilisées.

  • Autorise la suppression, la substitution ou l'extension des propriétés par défaut.

  • Vérifie que les modifications apportées aux valeurs des propriétés sur l'hôte sont automatiquement détectées et traduites dans le contrôle ou l'élément hébergé.

Remarque :

Les événements de modification de propriété ne sont pas propagés jusqu'à l'hébergement du contrôle ou la hiérarchie d'élément. La propriété n'est pas traduite si la valeur locale d'une propriété n'est pas modifiée en raison d'un paramètre direct, de styles, d'héritage, de liaison de données ou d'autres mécanismes qui modifient la valeur de la propriété.

Utilisez la propriété PropertyMap sur l'élément WindowsFormsHost et la propriété PropertyMap sur le contrôle ElementHost pour accéder au mappage de propriétés.

Mappage de propriétés à l'aide de l'élément WindowsFormsHost

L'élément WindowsFormsHost traduit les propriétés WPF par défaut en leurs équivalents Windows Forms à l'aide de la table de traduction suivante.

Hébergement Windows Presentation Foundation

Windows Forms

Comportement d'interopérabilité

Background

(System.Windows.Media.Brush)

BackColor

(System.Drawing.Color)

L'élément WindowsFormsHost définit la propriété BackColor et la propriété BackgroundImage du contrôle hébergé. Le mappage est exécuté à l'aide des règles suivantes :

  • Si Background est une couleur unie, il est converti et utilisé pour définir la propriété BackColor du contrôle hébergé. La propriété BackColor n'est pas définie sur le contrôle hébergé, car celui-ci peut hériter de la valeur de la propriété BackColor.

Remarque :

Le contrôle hébergé ne prend pas en charge la transparence. Toute couleur assignée à BackColor doit être totalement opaque, avec une valeur alpha 0xFF.

Remarque :

Vous pouvez substituer ce comportement ou supprimer le mappage de propriétés Background.

Cursor

Cursor

Si le mappage par défaut n'a pas été réassigné, le contrôle WindowsFormsHost parcourt sa hiérarchie ancêtre jusqu'à ce qu'il trouve un ancêtre avec son jeu de propriétés Cursor. Cette valeur est traduite en curseur Windows Forms correspondant le plus.

Si le mappage par défaut de la propriété ForceCursor n'a pas été réassigné, le parcours s'arrête sur le premier ancêtre avec un ForceCursor ayant la valeur true.

FlowDirection

(System.Windows.FlowDirection)

RightToLeft

(System.Windows.Forms.RightToLeft)

LeftToRight correspond à No.

RightToLeft correspond à Yes.

Inherit n'est pas mappé.

FlowDirection.RightToLeft correspond à RightToLeft.Yes.

FontStyle

Style sur System.Drawing.Font du contrôle hébergé

Le jeu de propriétés WPF est traduit en Font correspondant. Si une de ces propriétés est modifiée, un nouveau Font est créé. Pour Normal : Italic est désactivé. Pour Italic ou Oblique : Italic est activé.

FontWeight

Style sur System.Drawing.Font du contrôle hébergé

Le jeu de propriétés WPF est traduit en Font correspondant. Si une de ces propriétés est modifiée, un nouveau Font est créé. Pour Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold ou UltraBold : Bold est activé. Pour ExtraLight, Light, Normal, Regular, Thin ou UltraLight : Bold est désactivé.

FontFamily

FontSize

FontStretch

FontStyle

FontWeight

Font

(System.Drawing.Font)

Le jeu de propriétés WPF est traduit en Font correspondant. Si une de ces propriétés est modifiée, un nouveau Font est créé. Le contrôle Windows Forms hébergé est redimensionné en fonction de la taille de police.

La taille de police dans WPF est exprimée sous la forme de un quatre-vingt-seizième d'un pouce et dans Windows Forms sous la forme de un soixante-douzième d'un pouce. La conversion correspondante est :

Taille de police Windows Forms = Taille de police WPF * 72.0 / 96.0.

Foreground

(System.Windows.Media.Brush)

ForeColor

(System.Drawing.Color)

Le mappage de propriétés Foreground est exécuté à l'aide des règles suivantes :

IsEnabled

Enabled

Si IsEnabled est défini, l'élément WindowsFormsHost définit la propriété Enabled sur le contrôle hébergé.

Padding

Padding

Les quatre valeurs de la propriété Padding sur le contrôle Windows Forms hébergé ont la même valeur Thickness.

Visibility

Visible

  • Visible correspond à Visible = true. Le contrôle Windows Forms hébergé est visible. Il n'est pas recommandé d'affecter explicitement false à la propriété Visible sur le contrôle hébergé.

  • Collapsed correspond à Visible = true ou false. Le contrôle Windows Forms hébergé n'est pas dessiné et sa zone est réduite.

  • Hidden: Le contrôle Windows Forms hébergé occupe l'espace dans la présentation, mais il n'est pas visible. Dans ce cas, la propriété Visible a la valeur true. Il n'est pas recommandé d'affecter explicitement false à la propriété Visible sur le contrôle hébergé.

Les propriétés attachées sur les éléments conteneurs sont totalement prises en charge par l'élément WindowsFormsHost.

Pour plus d'informations, consultez Procédure pas à pas : mappage de propriétés à l'aide de l'élément WindowsFormsHost.

Mises à jour des propriétés parent

Les modifications apportées à la plupart des propriétés parent entraînent des notifications sur le contrôle enfant hébergé. La liste suivante décrit les propriétés qui n'entraînent pas notifications lorsque leur valeur est modifiée.

Par exemple, si vous modifiez la valeur de la propriété Background de l'élément WindowsFormsHost, la propriété BackColor du contrôle hébergé n'est pas modifiée.

Mappage de propriétés à l'aide du contrôle ElementHost

Les propriétés suivantes fournissent une notification de modification intégrée. N'appelez pas la méthode OnPropertyChanged lorsque vous mappez ces propriétés.

  • AutoSize

  • BackColor

  • BackgroundImage

  • BackgroundImageLayout

  • BindingContext

  • CausesValidation

  • ContextMenu

  • ContextMenuStrip

  • Curseur

  • Dock

  • Enabled

  • Font

  • ForeColor

  • Emplacement

  • Marge

  • Remplissage

  • Parent

  • Region

  • RightToLeft

  • Size

  • TabIndex

  • TabStop

  • Text

  • Visible

Le contrôle ElementHost traduit les propriétés Windows Forms par défaut en leurs équivalents WPF à l'aide de la table de traduction suivante.

Pour plus d'informations, consultez Procédure pas à pas : mappage de propriété à l'aide du contrôle ElementHost.

Hébergement Windows Forms

Windows Presentation Foundation

Comportement d'interopérabilité

BackColor

(System.Drawing.Color)

Background

(System.Windows.Media.Brush) sur l'élément hébergé

La définition de cette propriété force à repeindre avec un ImageBrush. Si la propriété BackColorTransparent a la valeur false (valeur par défaut), ce ImageBrush est basé sur l'apparence du contrôle ElementHost, notamment ses propriétés BackColor, BackgroundImage, BackgroundImageLayout et les gestionnaires de peinture attachés.

Si la propriété BackColorTransparent a la valeur true, ImageBrush est basé sur l'apparence du parent du contrôle ElementHost, notamment les propriétés BackColor, BackgroundImage, BackgroundImageLayout du parent et les gestionnaires de peinture attachés.

BackgroundImage

(System.Drawing.Image)

Background

(System.Windows.Media.Brush) sur l'élément hébergé

La définition de cette propriété provoque le même comportement que celui décrit pour le mappage BackColor.

BackgroundImageLayout

Background

(System.Windows.Media.Brush) sur l'élément hébergé

La définition de cette propriété provoque le même comportement que celui décrit pour le mappage BackColor.

Cursor

(System.Windows.Forms.Cursor)

Cursor

(System.Windows.Input.Cursor)

Le curseur Windows Forms standard est traduit en curseur WPF standard correspondant. Si Windows Forms n'est pas un curseur standard, la valeur par défaut est assignée.

Enabled

IsEnabled

Si Enabled est défini, le contrôle ElementHost définit la propriété IsEnabled sur l'élément hébergé.

Font

(System.Drawing.Font)

FontFamily

FontSize

FontStretch

FontStyle

FontWeight

La valeur Font est traduite en un jeu correspondant de propriétés de police WPF.

Bold

FontWeight sur l'élément hébergé

Si Bold est true, FontWeight a la valeur Bold.

Si Bold est false, FontWeight a la valeur Normal.

Italic

FontStyle sur l'élément hébergé

Si Italic est true, FontStyle a la valeur Italic.

Si Italic est false, FontStyle a la valeur Normal.

Strikeout

TextDecorations sur l'élément hébergé

S'applique uniquement lors de l'hébergement d'un contrôle TextBlock.

Underline

TextDecorations sur l'élément hébergé

S'applique uniquement lors de l'hébergement d'un contrôle TextBlock.

RightToLeft

(System.Windows.Forms.RightToLeft)

FlowDirection

(FlowDirection)

No correspond à LeftToRight.

Yes correspond à RightToLeft.

Visible

Visibility

Le contrôle ElementHost définit la propriété Visibility sur l'élément hébergé à l'aide des règles suivantes :

Voir aussi

Tâches

Procédure pas à pas : mappage de propriétés à l'aide de l'élément WindowsFormsHost

Procédure pas à pas : mappage de propriété à l'aide du contrôle ElementHost

Concepts

Vue d'ensemble de l'interopérabilité WPF et Win32

Scénarios pris en charge en matière d'interopérabilité de Windows Presentation Foundation et Windows Forms

Référence

ElementHost

WindowsFormsHost