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 true sur . |
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 true sur , 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
.NET Desktop feedback