Partager via


Mappage de propriétés Windows Forms et WPF

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

  • Permet de mapper facilement les modifications de propriété pertinentes dans l’environnement hôte au contrôle ou à l’élément hébergé.

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

  • Permet de supprimer, de remplacer ou d’étendre facilement les propriétés par défaut.

  • Garantit que les modifications de valeur de propriété 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 dans la hiérarchie du contrôle d’hébergement ou des éléments. La traduction de propriété n’est pas effectuée si la valeur locale d’une propriété ne change pas en raison du paramètre direct, des styles, de l’héritage, de la 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 avec l’élément WindowsFormsHost

L’élément WindowsFormsHost traduit les propriétés WPF par défaut en leurs équivalents Windows Forms à l’aide du tableau de traduction suivant.

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 BackColor propriété du contrôle hébergé et la BackgroundImage propriété du contrôle hébergé. Le mappage est effectué à l’aide des règles suivantes :

- Si Background est une couleur unie, elle est convertie et utilisée pour définir la BackColor Property du contrôle hébergé. La BackColor propriété n’est pas définie sur le contrôle hébergé, car le contrôle hébergé peut hériter de la valeur de la BackColor propriété. Note: Le contrôle hébergé ne prend pas en charge la transparence. Toute couleur affectée à BackColor doit être entièrement opaque, avec une valeur alpha de 0xFF.

- Si Background n'est pas une couleur unie, le contrôle WindowsFormsHost crée un bitmap à partir de la propriété Background. Le WindowsFormsHost contrôle affecte cette bitmap à la BackgroundImage propriété du contrôle hébergé. Cela donne un effet similaire à la transparence. Note: Vous pouvez remplacer ce comportement ou supprimer le mappage des Background propriétés.
Cursor Cursor Si le mappage par défaut n’a pas été réaffecté, WindowsFormsHost contrôle parcourt sa hiérarchie d'ancêtres jusqu’à ce qu’il trouve un ancêtre avec sa propriété Cursor définie. Cette valeur est traduite en curseur Windows Forms correspondant le plus proche.

Si le mappage par défaut de la propriété ForceCursor n’a pas été réaffecté, la traversée s’arrête sur le premier ancêtre pour lequel ForceCursor est défini sur true.
FlowDirection

(System.Windows.FlowDirection)
RightToLeft

(System.Windows.Forms.RightToLeft)
LeftToRight est mappé à No.

RightToLeft est mappé à Yes.

Inherit n’est pas mappé.

FlowDirection.RightToLeft est mappé à RightToLeft.Yes.
FontStyle Style sur le contrôle hébergé System.Drawing.Font L’ensemble de propriétés WPF est traduit en une propriété correspondante Font. Quand l’une de ces propriétés change, une nouvelle Font est créée. Pour Normal: Italic est désactivé. Pour Italic ou Oblique: Italic est activé.
FontWeight Style sur le contrôle hébergé System.Drawing.Font L’ensemble de propriétés WPF est traduit en une propriété correspondante Font. Quand l’une de ces propriétés change, une nouvelle Font est créée. Pour Black, BoldDemiBoldExtraBoldHeavyMediumSemiBoldou 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)
L’ensemble de propriétés WPF est traduit en une propriété correspondante Font. Quand l’une de ces propriétés change, une nouvelle Font est créée. Le contrôle Windows Forms hébergé est redimensionné selon la taille de la police de caractère.

La taille de police dans WPF est exprimée en 90-sixième de pouce, et dans Windows Forms comme une soixante-dix seconde d’un pouce. La conversion correspondante est la suivante :

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

(System.Windows.Media.Brush)
ForeColor

(System.Drawing.Color)
Le Foreground mappage de propriétés est effectué à l’aide des règles suivantes :

- Si Foreground est un SolidColorBrush, utilisez Color pour ForeColor.
- Si Foreground est un GradientBrush, utilisez la couleur du GradientStop ayant la plus basse valeur de décalage pour ForeColor.
- Pour tout autre Brush type, laissez ForeColor inchangé. Cela signifie que la valeur par défaut est utilisée.
IsEnabled Enabled Lorsqu’on définit IsEnabled, l’élément WindowsFormsHost fixe la propriété Enabled sur le contrôle hébergé.
Padding Padding Les quatre valeurs de la Padding propriété sur le contrôle Windows Forms hébergé sont définies sur la même Thickness valeur.

- Les valeurs supérieures à MaxValue sont définies sur MaxValue.
- Les valeurs inférieures à MinValue sont définies sur MinValue.
Visibility Visible - Visible correspond à Visible = true. Le contrôle Windows Forms hébergé est visible. La définition explicite de la propriété Visible sur le contrôle hébergé false n’est pas recommandée.
- Collapsedest mappé à Visible = true ou .false Le contrôle Windows Forms intégré n’est pas dessiné et son espace est réduit.
- Hidden : le contrôle Windows Forms hébergé occupe l’espace dans la disposition, mais n’est pas visible. Dans ce cas, la Visible propriété est définie sur true. La définition explicite de la propriété Visible sur le contrôle hébergé false n’est pas recommandée.

Les propriétés jointes sur les éléments de conteneur sont entièrement prises en charge par l’élément WindowsFormsHost .

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

Mises à jour des propriétés parentes

Les modifications apportées à la plupart des propriétés parentes provoquent des notifications au contrôle enfant hébergé. La liste suivante décrit les propriétés qui ne provoquent pas de notifications lorsque leurs valeurs changent.

Par exemple, si vous modifiez la valeur de la Background propriété de l’élément WindowsFormsHost , la BackColor propriété du contrôle hébergé ne change pas.

Mappage de propriétés avec le contrôle ElementHost

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

  • AutoSize

  • Couleur de fond

  • Image de fond

  • BackgroundImageLayout

  • Contexte de Liaison

  • Déclenche la Validation

  • Menu contextuel

  • ContextMenuStrip

  • Curseur

  • Bassin

  • Activé

  • Police

  • ForeColor

  • Emplacement

  • Marge

  • Bourrage

  • Parent

  • Région

  • De droite à gauche

  • Taille

  • TabIndex

  • TabStop

  • Texto

  • Visible

Le ElementHost contrôle convertit les propriétés Windows Forms par défaut en leurs équivalents WPF à l’aide du tableau de traduction suivant.

Pour plus d’informations, consultez Procédure pas à pas : Propriétés de mappage à 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 un repaint avec un ImageBrush. Si la propriété BackColorTransparent est définie sur false (la valeur par défaut), cet ImageBrush est basé sur l'apparence du contrôle ElementHost, y compris ses propriétés BackColor, BackgroundImage, BackgroundImageLayout et tous les gestionnaires de peinture attachés.

Si la propriété BackColorTransparent est définie à true, le ImageBrush est basé sur l'apparence du parent du contrôle ElementHost, y compris les propriétés BackColor, BackgroundImage, BackgroundImageLayout et tous 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é entraîne le même comportement que celui décrit pour le BackColor mappage.
BackgroundImageLayout Background

(System.Windows.Media.Brush) sur l’élément hébergé
La définition de cette propriété entraîne le même comportement que celui décrit pour le BackColor mappage.
Cursor

(System.Windows.Forms.Cursor)
Cursor

(System.Windows.Input.Cursor)
Le curseur standard Windows Forms est traduit en curseur standard WPF correspondant. Si windows Forms n’est pas un curseur standard, la valeur par défaut est affectée.
Enabled IsEnabled Lorsque Enabled est défini, le contrôle ElementHost définit la IsEnabled propriété sur l’élément hébergé.
Font

(System.Drawing.Font)
FontFamily

FontSize

FontStretch

FontStyle

FontWeight
La Font valeur est traduite en un ensemble correspondant de propriétés de police WPF.
Bold FontWeight sur l’élément hébergé Si Bold est true, FontWeight est défini sur Bold.

Si Bold est false, FontWeight est défini sur Normal.
Italic FontStyle sur l’élément hébergé Si Italic est true, FontStyle est défini sur Italic.

Si Italic est false, FontStyle est défini sur Normal.
Strikeout TextDecorations sur l’élément hébergé S’applique uniquement lors de l’hébergement d’un élément de contrôle TextBlock.
Underline TextDecorations sur l’élément hébergé S’applique uniquement lors de l’hébergement d’un élément de contrôle TextBlock.
RightToLeft

(System.Windows.Forms.RightToLeft)
FlowDirection

(FlowDirection)
No est mappé à LeftToRight.

Yes est mappé à RightToLeft.
Visible Visibility Le ElementHost contrôle définit la Visibility propriété sur l’élément hébergé à l’aide des règles suivantes :

- Visible = true correspond à Visible.
- Visible = false correspond à Hidden.

Voir aussi