Formulários do Windows e mapeamento de propriedades do WPF
As tecnologias Windows Forms e WPF possuem dois modelos de propriedade semelhantes mas diferentes. Property mapping oferece suporte a interoperação entre as duas arquiteturas e fornece os seguintes recursos:
Facilita mapear alterações de propriedades relevantes no ambiente de hospedagem para o controle hospedado ou elemento.
Fornece tratamento padrão para mapeamento das propriedades mais comumente usadas.
Permite fácil remoção, substituição, ou extensão das propriedades padrão.
Garante que alterações no valor da propriedade no host são automaticamente detectados e transmitidos para o controle ou elemento hospedado.
![]() |
---|
Eventos de alteração de propriedade não são propagados para cima do controle de hospedagem ou hierarquia de elementos. Conversão de propriedade não é executada se o valor de local de uma propriedade não for alterado devido Direcione a definir, estilos, herança, vinculação de dados ou outros mecanismos que alterar o valor da propriedade. |
Use a propriedade PropertyMap no elemento WindowsFormsHost e a propriedade PropertyMap no ElementHost controle para acessar o mapeamento de propriedade.
Mapeamento de Propriedade com o elemento WindowsFormsHost
O elemento WindowsFormsHost converte propriedades WPF padrão para seus equivalentes Windows Forms usando a seguinte tabela de conversão.
Hospedagem da Windows Presentation Foundation |
Windows Forms |
Comportamento Interoperation |
---|---|---|
O elemento WindowsFormsHost define a propriedade BackColor do controle hospedado e a propriedade BackgroundImage do controle hospedado. O mapeamento é executado usando as seguintes regras:
![]()
O controle hospedado não oferece suporte para transparência.Qualquer cor atribuída a BackColor deve ser totalmente opaco, com um valor alfa de 0xFF.
![]()
Você pode substituir esse comportamento ou você pode remover o Background mapeamento de propriedade.
|
||
Se o mapeamento padrão não foi reatribuido, controle WindowsFormsHost percorre a hierarquia de seu predecessor até encontrar um ancestral com seu conjunto de propriedades de Cursor . Esse valor é convertido para o cursor Windows Forms correspondente mais próximo. Se o mapeamento padrão para a propriedade ForceCursor não foi reatribuido, a percorrimento para sobre o primeiro predecessor com ForceCursor definido como true. |
||
LeftToRight mapeia para No. RightToLeft mapeia para Yes. Inherit não é mapeado. FlowDirection.RightToLeft mapeia para RightToLeft.Yes. |
||
Style No controle do Host. System.Drawing.Font |
O conjunto de propriedades WPF é convertido em um Font correspondente. Quando uma dessas propriedades for alterada, um novo Font é criado. For Normal: Italic está desabilitado. For Italic ou Oblique: Italic está habilitado. |
|
Style No controle do Host. System.Drawing.Font |
O conjunto de propriedades WPF é convertido em um Font correspondente. Quando uma dessas propriedades for alterada, um novo Font é criado. For Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold, ou UltraBold: Bold está habilitado. For ExtraLight, Light, Normal, Regular, Thin, ou UltraLight: Bold está desabilitado. |
|
O conjunto de propriedades WPF é convertido em um Font correspondente. Quando uma dessas propriedades for alterada, um novo Font é criado. O controle de Windows Forms hospedado redimensiona baseado no tamanho da fonte. Tamanho da fonte em WPF é expresso como um nonagésimo-sexto de polegada e em Windows Forms como um setuagésimo-segundo de uma polegada. A conversão correspondente é: tamanho da fonte de Windows Forms = tamanho da fonte de WPF * 72.0 / 96.0. |
||
O mapeamento de propriedade Foreground é executado usando as seguintes regras:
|
||
Quando IsEnabled estiver definido, o elemento WindowsFormsHost define a propriedade Enabled no controle hospedado. |
||
Todos os quatro valores da propriedade Padding no controle Windows Forms hospedado são definidos para o mesmo valor Thickness. |
||
|
Propriedades anexadas no elementos de recipiente são totalmente suportadas pelo elemento WindowsFormsHost.
Para obter mais informações, consulte Demonstra Passo a passo: Mapeando propriedades usando o elemento WindowsFormsHost.
Atualizações para propriedades pai
As alterações para a maioria das propriedades pai causam notificações para o controle filho hospedado. A lista a seguir descreve as propriedades que não causam notificações quando seus valores são alterados.
Por exemplo, se você alterar o valor da propriedade Background do elemento WindowsFormsHost, a propriedade BackColor do controle hospedado não altera.
Mapeamento de Propriedade com o controle de ElementHost
As propriedades a seguir fornecem notificação de alteração internos. Não chame o método OnPropertyChanged quando você está mapeando essas propriedades:
AutoSize
BackColor
BackgroundImage
BackgroundImageLayout
BindingContext
CausesValidation
ContextMenu
ContextMenuStrip
Cursor
Dock
Enabled
Fonte
Forecolor
Local
Margin
Enchimento
Pai
Região
RightToLeft:
Size (Tamanho)
TabIndex
Parada de tabulação
Texto
Visible
O controle ElementHost converte propriedades Windows Forms padrão para seus equivalentes WPF usando a seguinte tabela de conversão.
Para obter mais informações, consulte Demonstra Passo a passo: Mapeamento de propriedades usando o controle ElementHost.
Hospedagem de Formulários do Windows |
Windows Presentation Foundation |
Comportamento Interoperation |
---|---|---|
(System.Windows.Media.Brush) no elemento hospedado |
A definição dessa propriedade força um Repaint com um ImageBrush. Se a propriedade BackColorTransparent é definida como false (o valor padrão), esse ImageBrush se baseia a aparência do controle ElementHost,incluindo suas BackColor,BackgroundImage,BackgroundImageLayout propriedades e qualquer manipuladores de pintura anexados. Se a propriedade BackColorTransparent é definida como true, o ImageBrush se baseia na aparência do pai do controle ElementHost, incluindo suas propriedadesBackColor,BackgroundImage,BackgroundImageLayout e qualquer manipuladores de pintura anexados. |
|
(System.Windows.Media.Brush) no elemento hospedado |
A definição dessa propriedade causa o mesmo comportamento descrito para o mapeamento de BackColor . |
|
(System.Windows.Media.Brush) no elemento hospedado |
A definição dessa propriedade causa o mesmo comportamento descrito para o mapeamento de BackColor . |
|
O cursor padrão de Windows Forms é convertido para o cursor padrão WPF correspondente. Se o Windows Forms não é um cursor padrão, o padrão é atribuído. |
||
Quando Enabled estiver definido, o controle ElementHost define a propriedade IsEnabled no elemento hospedado. |
||
O valor Font é convertido em um conjunto correspondente de propriedades de fonte de WPF. |
||
FontWeight no elemento hospedado. |
Se Bold estiver true, FontWeight está definida como Bold. Se Bold estiver false, FontWeight está definida como Normal. |
|
FontStyle no elemento hospedado. |
Se Italic estiver true, FontStyle está definida como Italic. Se Italic estiver false, FontStyle está definida como Normal. |
|
TextDecorations no elemento hospedado. |
Se aplica somente quando hospedando um controle TextBlock. |
|
TextDecorations no elemento hospedado. |
Se aplica somente quando hospedando um controle TextBlock. |
|
No mapeia para LeftToRight. Yes mapeia para RightToLeft. |
||
O controle ElementHost define a propriedade Visibility no elemento hospedado usando as seguintes regras: |
Consulte também
Tarefas
Demonstra Passo a passo: Mapeando propriedades usando o elemento WindowsFormsHost
Demonstra Passo a passo: Mapeamento de propriedades usando o controle ElementHost
Conceitos
Visão geral sobre interoperabilidade entre WPF e Win32
Cenários Suportados no Windows Presentation Foundation e Interoperação Windows Forms