Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As tecnologias Windows Forms e WPF têm dois modelos de propriedade semelhantes, mas diferentes. Mapeamento de propriedades dá suporte à interoperação entre as duas arquiteturas e fornece os seguintes recursos:
Facilita o mapeamento de alterações de propriedade relevantes no ambiente do host para o controle ou elemento hospedado.
Fornece tratamento padrão para mapear as propriedades mais usadas.
Permite a remoção fácil, substituição ou extensão de propriedades padrão.
Garante que as alterações de valor da propriedade no host sejam detectadas e traduzidas automaticamente para o controle ou elemento hospedado.
Observação
Os eventos de alteração de propriedade não são propagados até o controle de hospedagem ou hierarquia de elementos. A conversão de propriedades não será executada se o valor local de uma propriedade não for alterado devido à configuração direta, estilos, herança, associação de dados ou outros mecanismos que alterem o valor da propriedade.
Use a propriedade PropertyMap no elemento WindowsFormsHost e a propriedade PropertyMap no controle ElementHost para acessar o mapeamento de propriedades.
Mapeamento de propriedades com o elemento WindowsFormsHost
O elemento WindowsFormsHost converte as propriedades padrão do WPF para seus equivalentes do Windows Forms usando a tabela de tradução a seguir.
| Hospedagem do Windows Presentation Foundation | Windows Forms | Comportamento de interoperação |
|---|---|---|
| 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, ela será convertida e usada para definir a propriedade BackColor do controle hospedado. A propriedade BackColor não está definida no controle hospedado, pois o controle hospedado pode herdar o valor da propriedade BackColor. Observação: O controle hospedado não dá suporte à transparência. Qualquer cor atribuída a BackColor deve ser totalmente opaca, com um valor alfa de 0xFF. - Se Background não for uma cor sólida, o controle WindowsFormsHost criará um bitmap da propriedade Background. O controle WindowsFormsHost atribui esse bitmap à propriedade BackgroundImage do controle hospedado. Isso fornece um efeito semelhante à transparência. Observação: Você pode substituir esse comportamento ou remover o mapeamento de propriedades Background. |
| Cursor | Cursor | Se o mapeamento padrão não tiver sido reatribuído, o controle WindowsFormsHost percorrerá sua hierarquia ancestral até encontrar um ancestral com sua propriedade Cursor definida. Esse valor é traduzido para o cursor do Windows Forms correspondente mais próximo. Se o mapeamento padrão da propriedade ForceCursor não tiver sido reatribuído, a passagem será interrompida no primeiro ancestral 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 está mapeado. FlowDirection.RightToLeft mapeia para RightToLeft.Yes. |
| FontStyle | Style no System.Drawing.Font do controle hospedado | O conjunto de propriedades do WPF é traduzido em um Font correspondente. Quando uma dessas propriedades é alterada, um novo Font é criado. Para Normal: Italic está desativado. Para Italic ou Oblique: Italic está habilitado. |
| FontWeight | Style no System.Drawing.Font do controle hospedado | O conjunto de propriedades do WPF é traduzido em um Font correspondente. Quando uma dessas propriedades é alterada, um novo Font é criado. Para Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBoldou UltraBold: Bold está habilitado. Para ExtraLight, Light, Normal, Regular, Thinou UltraLight: Bold está desabilitado. |
| FontFamily FontSize FontStretch FontStyle FontWeight |
Font (System.Drawing.Font) |
O conjunto de propriedades do WPF é traduzido em um Font correspondente. Quando uma dessas propriedades é alterada, um novo Font é criado. O controle hospedado do Windows Forms redimensiona com base no tamanho da fonte. O tamanho da fonte no WPF é expresso como um noventa e seis avos de polegada e no Windows Forms como um setenta e dois avos de polegada. A conversão correspondente é: Tamanho da fonte do Windows Forms = tamanho da fonte do WPF * 72,0 / 96,0. |
| Foreground (System.Windows.Media.Brush) |
ForeColor (System.Drawing.Color) |
O mapeamento de propriedades Foreground é executado usando as seguintes regras: – Se Foreground for um SolidColorBrush, use Color para ForeColor. – Se Foreground for um GradientBrush, use a cor correspondente ao GradientStop que possui o menor valor de deslocamento para ForeColor. - Para qualquer outro tipo de Brush, deixe ForeColor inalterado. Isso significa que o padrão é usado. |
| IsEnabled | Enabled | Quando IsEnabled é definido, WindowsFormsHost elemento define a propriedade Enabled no controle hospedado. |
| Padding | Padding | Todos os quatro valores da propriedade Padding no controle hospedado do Windows Forms são definidos como o mesmo valor Thickness. - Valores maiores que MaxValue são definidos como MaxValue. - Valores menores que MinValue são definidos como MinValue. |
| Visibility | Visible |
-
Visible corresponde a Visible = true. O controle hospedado do Windows Forms é visível. Não é recomendável definir explicitamente a propriedade Visible no controle hospedado como false.- Collapsed mapeia para Visible = true ou false. O controle hospedado no Windows Forms não é desenhado e a área dele é reduzida.- Hidden: o controle hospedado do Windows Forms 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 como false. |
As propriedades anexadas aos elementos de contêiner são totalmente suportadas pelo elemento WindowsFormsHost.
Para obter mais informações, consulte Passo a passo: mapeando propriedades usando o elemento WindowsFormsHost.
Atualizações para propriedades pai
As alterações na maioria das propriedades pai ocasionam 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 será alterada.
Mapeamento de propriedades com o controle ElementHost
As propriedades a seguir fornecem uma notificação de alteração embutida. Não chame o método OnPropertyChanged ao mapear essas propriedades:
Dimensionamento automático
Cor de Fundo
BackgroundImage
BackgroundImageLayout
BindingContext
Causas de Validação
Menu de Contexto
Menu de Contexto (ContextMenuStrip)
Cursor
Doca
Ativado
Fonte
ForeColor
Localização
Margem
Enchimento
Parente
Região
DaDireitaParaEsquerda
Tamanho
TabIndex
Tabstop
Texto
Visível
O controle ElementHost converte as propriedades padrão do Windows Forms para seus equivalentes do WPF usando a tabela de tradução a seguir.
Para obter mais informações, consulte Passo a passo: mapeando propriedades usando o controle ElementHost.
| Hospedagem do Windows Forms | Windows Presentation Foundation | Comportamento de interoperação |
|---|---|---|
| BackColor (System.Drawing.Color) |
Background (System.Windows.Media.Brush) no elemento hospedado |
Definir essa propriedade força uma repintura com um ImageBrush. Se a propriedade BackColorTransparent estiver definida como false (o valor padrão), essa ImageBrush será baseada na aparência do controle ElementHost, incluindo suas propriedades BackColor, BackgroundImage, BackgroundImageLayout e quaisquer manipuladores de tinta anexados.Se a propriedade BackColorTransparent estiver definida como true, o ImageBrush será baseado na aparência do pai do controle ElementHost, incluindo as propriedades BackColor, BackgroundImage e BackgroundImageLayout do pai, assim como quaisquer manipuladores de tinta anexados. |
| BackgroundImage (System.Drawing.Image) |
Background (System.Windows.Media.Brush) no elemento hospedado |
Definir essa propriedade causa o mesmo comportamento descrito para o mapeamento de BackColor. |
| BackgroundImageLayout | Background (System.Windows.Media.Brush) no elemento hospedado |
Definir essa 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 do Windows Forms é traduzido para o cursor padrão do WPF correspondente. Se o Windows Forms não for um cursor padrão, o padrão será utilizado. |
| Enabled | IsEnabled | Quando Enabled é 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 do WPF. |
| Bold | FontWeight no elemento hospedado | Se Bold é true, FontWeight é definido como Bold.Se Bold é false, FontWeight é definido como Normal. |
| Italic | FontStyle no elemento hospedado | Se Italic é true, FontStyle é definido como Italic.Se Italic é false, FontStyle é definido como Normal. |
| Strikeout | TextDecorations no elemento hospedado | Aplica-se somente ao hospedar um controle TextBlock. |
| Underline | TextDecorations no elemento hospedado | Aplica-se somente ao hospedar 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: - Visible = true mapeia para Visible.- Visible = false mapeia para Hidden. |
Consulte também
.NET Desktop feedback