Compartir a través de


Asignación de propiedades en formularios Windows Forms y WPF

Actualización: noviembre 2007

Las tecnologías de WPF y formularios Windows Forms tienen dos modelos de propiedades similares pero diferentes. La asignación de propiedades admite la interoperabilidad entre las dos arquitecturas y proporciona las funciones siguientes:

  • Facilita la asignación de los cambios de las propiedades pertinentes en el entorno del host al control o elemento hospedado.

  • Proporciona el control predeterminado para asignar las propiedades más utilizadas.

  • Facilita la eliminación, invalidación o extensión de las propiedades predeterminadas.

  • Permite asegurarse de que los cambios de los valores en el host se detecten y traduzcan automáticamente al control o elemento hospedado.

Nota

Los eventos de cambio de propiedad no se propagan en sentido ascendente por la jerarquía del control o elemento de hospedaje. La conversión de propiedades no se efectúa si el valor local de una propiedad no cambia por la existencia de mecanismos que modifican el valor de la propiedad, tales como establecimiento directo, estilos, herencia, enlaces de datos u otros.

Utilice la propiedad PropertyMap del elemento WindowsFormsHost y la propiedad PropertyMap del control ElementHost para tener acceso a la asignación de propiedades.

Asignación de propiedades con el elemento WindowsFormsHost

El elemento WindowsFormsHost convierte las propiedades predeterminadas de WPF en sus equivalentes en formularios Windows Forms utilizando la tabla de conversión siguiente.

Hospedaje de Windows Presentation Foundation

Formularios Windows Forms

Comportamiento de interoperación

Background

(System.Windows.Media.Brush)

BackColor

(System.Drawing.Color)

El elemento WindowsFormsHost establece las propiedades BackColor y BackgroundImage del control hospedado. La asignación se efectúa mediante las reglas siguientes:

  • Si Background es un color sólido, se convierte y utiliza para establecer la propiedad BackColor del control hospedado. La propiedad BackColor no se establece en el control hospedado, porque el control hospedado puede heredar el valor de la propiedad BackColor.

Nota

El control hospedado no admite la transparencia. Todos los colores que se asignen a BackColor deberán ser totalmente opacos, con un valor de alfa de 0xFF.

Nota

Puede invalidar este comportamiento o quitar la asignación de la propiedad Background.

Cursor

Cursor

Si no se ha reasignado la asignación predeterminada, el control WindowsFormsHost recorre su jerarquía de antecesores hasta que encuentra uno cuya propiedad Cursor está establecida. Este valor se convierte en el cursor de formularios Windows Forms correspondiente más cercano.

Si no se ha reasignado la asignación predeterminada para la propiedad ForceCursor, el recorrido se detiene en el primer antecesor cuya propiedad ForceCursor está establecida en true.

FlowDirection

(System.Windows.FlowDirection)

RightToLeft

(System.Windows.Forms.RightToLeft)

LeftToRight se asigna a No.

RightToLeft se asigna a Yes.

Inherit no se asigna.

FlowDirection.RightToLeft se asigna a RightToLeft.Yes.

FontStyle

Propiedad Style del objeto System.Drawing.Font del control hospedado.

El conjunto de propiedades de WPF se convierte a la Font correspondiente. Cuando alguna de estas propiedades cambia, se crea una nueva Font. Para Normal: Italic está deshabilitado. Para Italic o Oblique: Italic está habilitado.

FontWeight

Propiedad Style del objeto System.Drawing.Font del control hospedado.

El conjunto de propiedades de WPF se convierte a la Font correspondiente. Cuando alguna de estas propiedades cambia, se crea una nueva Font. Para Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold o UltraBold: Bold está habilitado. Para ExtraLight, Light, Normal, Regular, Thin o UltraLight: Bold está deshabilitado.

FontFamily

FontSize

FontStretch

FontStyle

FontWeight

Font

(System.Drawing.Font)

El conjunto de propiedades de WPF se convierte a la Font correspondiente. Cuando alguna de estas propiedades cambia, se crea una nueva Font. El tamaño del control de formularios Windows Forms hospedado cambia dependiendo del tamaño de fuente.

En WPF, el tamaño de fuente se expresa en noventa y seisavos de pulgada; mientras que en formularios Windows Forms se expresa en setenta y dosavos de pulgada. La conversión correspondiente es:

Tamaño de fuente en formularios Windows Forms = tamaño de fuente en WPF * 72,0 / 96,0.

Foreground

(System.Windows.Media.Brush)

ForeColor

(System.Drawing.Color)

La asignación de la propiedad Foreground se realiza utilizando las reglas siguientes:

IsEnabled

Enabled

Cuando se establece IsEnabled, el elemento WindowsFormsHost establece la propiedad Enabled del control hospedado.

Padding

Padding

Los cuatro valores de la propiedad Padding en el control de formularios Windows Forms hospedado se establecen en el mismo valor de Thickness.

Visibility

Visible

  • Visible se asigna a Visible = true. El control de formularios Windows Forms hospedado está visible. No se recomienda establecer explícitamente la propiedad Visible del control hospedado en false.

  • Collapsed se asigna a Visible = true o false. No se dibuja el control de formularios Windows Forms hospedado y se contrae su área.

  • Hidden: el control de formularios Windows Forms hospedado ocupa espacio en el diseño, pero no está visible. En este caso, la propiedad Visible se establece en true. No se recomienda establecer explícitamente la propiedad Visible del control hospedado en false.

El elemento WindowsFormsHost admite plenamente las propiedades asociadas a los elementos contenedor.

Para obtener más información, consulte Tutorial: Asignar propiedades mediante el uso del elemento WindowsFormsHost.

Actualizaciones de propiedades primarias

Al cambiar la mayoría de las propiedades primarias, se producen notificaciones al control secundario hospedado. En la lista siguiente se describen las propiedades que no dan lugar a notificaciones cuando sus valores cambian.

Por ejemplo, si cambia el valor de la propiedad Background del elemento WindowsFormsHost, la propiedad BackColor del control hospedado no cambia.

Asignación de propiedades con el control ElementHost

Las propiedades siguientes proporcionan notificación de cambios integrada. No llame al método OnPropertyChanged cuando asigne estas propiedades:

  • AutoSize

  • BackColor

  • BackgroundImage

  • BackgroundImageLayout

  • BindingContext

  • CausesValidation

  • ContextMenu

  • ContextMenuStrip

  • Cursor

  • Dock

  • Enabled

  • Font

  • ForeColor

  • Location

  • Margin

  • Padding

  • Principal

  • Region

  • RightToLeft

  • Size

  • TabIndex

  • TabStop

  • Text

  • Visible

El control ElementHost convierte las propiedades predeterminadas de formularios Windows Forms en sus equivalentes en WPF utilizando la tabla de conversión siguiente.

Para obtener más información, consulte Tutorial: Asignar propiedades mediante el uso del control ElementHost.

Hospedaje de formularios Windows Forms

Windows Presentation Foundation

Comportamiento de interoperación

BackColor

(System.Drawing.Color)

Background

(System.Windows.Media.Brush) en el elemento hospedado

Al establecer esta propiedad fuerza a que se vuelva a pintar con ImageBrush. Si la propiedad BackColorTransparent está establecida en false (el valor predeterminado), ImageBrush se basará en el aspecto del control ElementHost, incluidas sus propiedades BackColor, BackgroundImage, BackgroundImageLayout, y en todos los controladores de pintura asociados.

Si la propiedad BackColorTransparent está establecida en true, ImageBrush se basa en el aspecto del elemento primario del control ElementHost, incluidas las propiedades BackColor, BackgroundImage, BackgroundImageLayout del elemento primario, y en todos los controladores de pintura asociados.

BackgroundImage

(System.Drawing.Image)

Background

(System.Windows.Media.Brush) en el elemento hospedado

Establecer esta propiedad produce el mismo comportamiento descrito para la asignación de BackColor.

BackgroundImageLayout

Background

(System.Windows.Media.Brush) en el elemento hospedado

Establecer esta propiedad produce el mismo comportamiento descrito para la asignación de BackColor.

Cursor

(System.Windows.Forms.Cursor)

Cursor

(System.Windows.Input.Cursor)

El cursor estándar de formularios Windows Forms se convierte al cursor estándar correspondiente de WPF. Si el de formularios Windows Forms no es un cursor estándar, se asigna el valor predeterminado.

Enabled

IsEnabled

Cuando se establece Enabled, el control ElementHost establece la propiedad IsEnabled del elemento hospedado.

Font

(System.Drawing.Font)

FontFamily

FontSize

FontStretch

FontStyle

FontWeight

El valor de Font se convierte a un conjunto correspondiente de propiedades de fuente de WPF.

Bold

FontWeight en el elemento hospedado

Si Bold es true, FontWeight se establece en Bold.

Si Bold es false, FontWeight se establece en Normal.

Italic

FontStyle en el elemento hospedado

Si Italic es true, FontStyle se establece en Italic.

Si Italic es false, FontStyle se establece en Normal.

Strikeout

TextDecorations en el elemento hospedado

Sólo se aplica al hospedar un control TextBlock.

Underline

TextDecorations en el elemento hospedado

Sólo se aplica al hospedar un control TextBlock.

RightToLeft

(System.Windows.Forms.RightToLeft)

FlowDirection

(FlowDirection)

No se asigna a LeftToRight.

Yes se asigna a RightToLeft.

Visible

Visibility

El control ElementHost establece la propiedad Visibility en el elemento hospedado utilizando las reglas siguientes:

Vea también

Tareas

Tutorial: Asignar propiedades mediante el uso del elemento WindowsFormsHost

Tutorial: Asignar propiedades mediante el uso del control ElementHost

Conceptos

Información general sobre la interoperabilidad de WPF y Win32

Escenarios admitidos en la interoperación de Windows Presentation Foundation y formularios Windows Forms

Referencia

ElementHost

WindowsFormsHost