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 |
---|---|---|
El elemento WindowsFormsHost establece las propiedades BackColor y BackgroundImage del control hospedado. La asignación se efectúa mediante las reglas siguientes:
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. |
||
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. |
||
LeftToRight se asigna a No. RightToLeft se asigna a Yes. Inherit no se asigna. FlowDirection.RightToLeft se asigna a RightToLeft.Yes. |
||
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. |
|
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. |
|
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. |
||
La asignación de la propiedad Foreground se realiza utilizando las reglas siguientes:
|
||
Cuando se establece IsEnabled, el elemento WindowsFormsHost establece la propiedad Enabled del control hospedado. |
||
Los cuatro valores de la propiedad Padding en el control de formularios Windows Forms hospedado se establecen en el mismo valor de Thickness. |
||
|
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 |
---|---|---|
(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. |
|
(System.Windows.Media.Brush) en el elemento hospedado |
Establecer esta propiedad produce el mismo comportamiento descrito para la asignación de BackColor. |
|
(System.Windows.Media.Brush) en el elemento hospedado |
Establecer esta propiedad produce el mismo comportamiento descrito para la asignación de BackColor. |
|
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. |
||
Cuando se establece Enabled, el control ElementHost establece la propiedad IsEnabled del elemento hospedado. |
||
El valor de Font se convierte a un conjunto correspondiente de propiedades de fuente de WPF. |
||
FontWeight en el elemento hospedado |
Si Bold es true, FontWeight se establece en Bold. Si Bold es false, FontWeight se establece en Normal. |
|
FontStyle en el elemento hospedado |
||
TextDecorations en el elemento hospedado |
Sólo se aplica al hospedar un control TextBlock. |
|
TextDecorations en el elemento hospedado |
Sólo se aplica al hospedar un control TextBlock. |
|
No se asigna a LeftToRight. Yes se asigna a RightToLeft. |
||
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