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 PropertyMap propriété sur l’élément WindowsFormsHost et la propriété sur ElementHost le PropertyMap contrôle 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 :

- S’il s’agit Background d’une couleur unie, elle est convertie et utilisée pour définir la BackColor propriété 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é. Remarque : 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.

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

Si le mappage par défaut de la ForceCursor propriété n’a pas été réaffecté, la traversée s’arrête sur le premier ancêtre avec ForceCursor la valeur définie truesur .
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 le contrôle hébergé System.Drawing.Font L’ensemble de propriétés WPF est traduit en un .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 un .Font Quand l’une de ces propriétés change, une nouvelle Font est créée. Pour Black, BoldMediumDemiBoldHeavySemiBoldExtraBoldou UltraBold: Bold est activé. Pour ExtraLight, , Light, RegularNormal, 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 un .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é en fonction de la taille de police.

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 :

- S’il s’agit Foreground d’un SolidColorBrush, utilisez Color pour ForeColor.
- S’il Foreground s’agit d’un GradientBrush, utilisez la couleur du GradientStop décalage avec la valeur de décalage la plus basse pour ForeColor.
- Pour tout autre Brush type, laissez ForeColor inchangé. Cela signifie que la valeur par défaut est utilisée.
IsEnabled Enabled Lorsqu’il IsEnabled est défini, WindowsFormsHost l’élément définit la Enabled propriété 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.

- Valeurs supérieures MaxValue à 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 Visible propriété sur le contrôle false hébergé n’est pas recommandée.
- Collapsedest mappé à 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 disposition, mais n’est pas visible. Dans ce cas, la Visible propriété est définie sur true. La définition explicite de la Visible propriété sur le contrôle false hébergé 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 aux 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

  • BackColor

  • BackgroundImage

  • BackgroundImageLayout

  • Bindingcontext

  • CausesValidation

  • ContextMenu

  • ContextMenuStrip

  • Curseur

  • Ancrer

  • Enabled

  • Police

  • CouleurTexte

  • Emplacement

  • Marge

  • Remplissage

  • Parent

  • Région

  • RightToLeft

  • Taille

  • TabIndex

  • TabStop

  • Texte

  • 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 BackColorTransparent propriété est définie false sur (la valeur par défaut), elle ImageBrush est basée sur l’apparence du ElementHost contrôle, y compris ses BackColorpropriétés BackgroundImage, BackgroundImageLayout ses propriétés et tous les gestionnaires de peinture attachés.

Si la BackColorTransparent propriété est définie truesur , elle ImageBrush est basée sur l’apparence du ElementHost parent du contrôle, y compris les BackColorpropriétés, BackgroundImageBackgroundImageLayout les propriétés 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 Lorsqu’il Enabled est défini, le ElementHost contrôle 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 a la valeur true, FontWeight a la valeur Bold.

Si Bold a la valeur false, FontWeight a la valeur Normal.
Italic FontStyle sur l’élément hébergé Si Italic a la valeur true, FontStyle a la valeur Italic.

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

(System.Windows.Forms.RightToLeft)
FlowDirection

(FlowDirection)
No correspond à LeftToRight.

Yes correspond à 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