Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
.NET Desktop feedback