Compartilhar via


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.

ObservaçãoObservação:

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

Background

(System.Windows.Media.Brush)

BackColor

(System.Drawing.Color)

O elemento WindowsFormsHost define a propriedade BackColor do controle hospedado e a propriedade BackgroundImage do controle hospedado. O mapeamento é executado usando as seguintes regras:

  • Se Background for uma cor sólida, ele é convertido e usado para definir a propriedade BackColor do controle hospedado. A propriedade BackColor não está definida no controle hospedado, porque o controle hospedado pode herdar o valor da propriedade BackColor.

ObservaçãoObservação:
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.
ObservaçãoObservação:
Você pode substituir esse comportamento ou você pode remover o Background mapeamento de propriedade.

Cursor

Cursor

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.

FlowDirection

(System.Windows.FlowDirection)

RightToLeft

(System.Windows.Forms.RightToLeft)

LeftToRight mapeia para No.

RightToLeft mapeia para Yes.

Inherit não é mapeado.

FlowDirection.RightToLeft mapeia para RightToLeft.Yes.

FontStyle

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.

FontWeight

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.

FontFamily

FontSize

FontStretch

FontStyle

FontWeight

Font

(System.Drawing.Font)

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.

Foreground

(System.Windows.Media.Brush)

ForeColor

(System.Drawing.Color)

O mapeamento de propriedade Foreground é executado usando as seguintes regras:

IsEnabled

Enabled

Quando IsEnabled estiver definido, o elemento WindowsFormsHost define a propriedade Enabled no controle hospedado.

Padding

Padding

Todos os quatro valores da propriedade Padding no controle Windows Forms hospedado são definidos para o mesmo valor Thickness.

Visibility

Visible

  • Visible mapeia para Visible = true. O controle Windows Forms hospedado está visível. Não é recomendável definir explicitamente a propriedade Visible no controle hospedado para false.

  • Collapsed mapeia para Visible = true ou false. O controle Windows Forms hospedado não é desenhado, e sua área é recolhida.

  • Hidden: O controle Windows Forms hospedado ocupa espaço no layout, mas não está visível. Nesse caso, a propriedade Visible é definida como true. Não é recomendável definir explicitamente a propriedade Visible no controle hospedado para false.

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

BackColor

(System.Drawing.Color)

Background

(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.

BackgroundImage

(System.Drawing.Image)

Background

(System.Windows.Media.Brush) no elemento hospedado

A definição dessa propriedade causa o mesmo comportamento descrito para o mapeamento de BackColor .

BackgroundImageLayout

Background

(System.Windows.Media.Brush) no elemento hospedado

A definição dessa propriedade causa o mesmo comportamento descrito para o mapeamento de BackColor .

Cursor

(System.Windows.Forms.Cursor)

Cursor

(System.Windows.Input.Cursor)

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.

Enabled

IsEnabled

Quando Enabled estiver definido, o controle ElementHost define a propriedade IsEnabled no elemento hospedado.

Font

(System.Drawing.Font)

FontFamily

FontSize

FontStretch

FontStyle

FontWeight

O valor Font é convertido em um conjunto correspondente de propriedades de fonte de WPF.

Bold

FontWeight no elemento hospedado.

Se Bold estiver true, FontWeight está definida como Bold.

Se Bold estiver false, FontWeight está definida como Normal.

Italic

FontStyle no elemento hospedado.

Se Italic estiver true, FontStyle está definida como Italic.

Se Italic estiver false, FontStyle está definida como Normal.

Strikeout

TextDecorations no elemento hospedado.

Se aplica somente quando hospedando um controle TextBlock.

Underline

TextDecorations no elemento hospedado.

Se aplica somente quando hospedando um controle TextBlock.

RightToLeft

(System.Windows.Forms.RightToLeft)

FlowDirection

(FlowDirection)

No mapeia para LeftToRight.

Yes mapeia para RightToLeft.

Visible

Visibility

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

Referência

ElementHost

WindowsFormsHost