Partilhar via


PropertyMap Classe

Definição

Oferece uma maneira de converter valores de propriedade entre elementos WPF (Windows Presentation Foundation) e controles de Formulários do Windows.

public ref class PropertyMap
public class PropertyMap
[System.Security.SecurityCritical]
public class PropertyMap
type PropertyMap = class
[<System.Security.SecurityCritical>]
type PropertyMap = class
Public Class PropertyMap
Herança
PropertyMap
Atributos

Exemplos

O exemplo de código a seguir mostra como adicionar um mapeamento para a Margin propriedade a um ElementHost controle.

// The AddMarginMapping method adds a new property mapping
// for the Margin property.
private void AddMarginMapping()
{
    elemHost.PropertyMap.Add(
        "Margin",
        new PropertyTranslator(OnMarginChange));
}

// The OnMarginChange method implements the mapping 
// from the Windows Forms Margin property to the
// Windows Presentation Foundation Margin property.
//
// The provided Padding value is used to construct 
// a Thickness value for the hosted element's Margin
// property.
private void OnMarginChange(object h, String propertyName, object value)
{
    ElementHost host = h as ElementHost;
    Padding p = (Padding)value;
    System.Windows.Controls.Button wpfButton = 
        host.Child as System.Windows.Controls.Button;

    Thickness t = new Thickness(p.Left, p.Top, p.Right, p.Bottom );

    wpfButton.Margin = t;
}
' The AddMarginMapping method adds a new property mapping
' for the Margin property.
Private Sub AddMarginMapping()

    elemHost.PropertyMap.Add( _
        "Margin", _
        New PropertyTranslator(AddressOf OnMarginChange))

End Sub


' The OnMarginChange method implements the mapping 
' from the Windows Forms Margin property to the
' Windows Presentation Foundation Margin property.
'
' The provided Padding value is used to construct 
' a Thickness value for the hosted element's Margin
' property.
Private Sub OnMarginChange( _
ByVal h As Object, _
ByVal propertyName As String, _
ByVal value As Object)

    Dim host As ElementHost = h
    Dim p As Padding = CType(value, Padding)
    Dim wpfButton As System.Windows.Controls.Button = host.Child


    Dim t As New Thickness(p.Left, p.Top, p.Right, p.Bottom)

    wpfButton.Margin = t

End Sub

O exemplo de código a seguir mostra como substituir o mapeamento padrão da FlowDirection propriedade em um WindowsFormsHost controle.

// The ReplaceFlowDirectionMapping method replaces the  
// default mapping for the FlowDirection property.
private void ReplaceFlowDirectionMapping()
{
    wfHost.PropertyMap.Remove("FlowDirection");

    wfHost.PropertyMap.Add(
        "FlowDirection",
        new PropertyTranslator(OnFlowDirectionChange));
}

// The OnFlowDirectionChange method translates a 
// Windows Presentation Foundation FlowDirection value 
// to a Windows Forms RightToLeft value and assigns
// the result to the hosted control's RightToLeft property.
private void OnFlowDirectionChange(object h, String propertyName, object value)
{
    WindowsFormsHost host = h as WindowsFormsHost;
    System.Windows.FlowDirection fd = (System.Windows.FlowDirection)value;
    System.Windows.Forms.CheckBox cb = host.Child as System.Windows.Forms.CheckBox;

    cb.RightToLeft = (fd == System.Windows.FlowDirection.RightToLeft ) ? 
        RightToLeft.Yes : RightToLeft.No;
}

// The cb_CheckedChanged method handles the hosted control's
// CheckedChanged event. If the Checked property is true,
// the flow direction is set to RightToLeft, otherwise it is
// set to LeftToRight.
private void cb_CheckedChanged(object sender, EventArgs e)
{
    System.Windows.Forms.CheckBox cb = sender as System.Windows.Forms.CheckBox;

    wfHost.FlowDirection = ( cb.CheckState == CheckState.Checked ) ? 
            System.Windows.FlowDirection.RightToLeft : 
            System.Windows.FlowDirection.LeftToRight;
}
' The ReplaceFlowDirectionMapping method replaces the
' default mapping for the FlowDirection property.
Private Sub ReplaceFlowDirectionMapping()

    wfHost.PropertyMap.Remove("FlowDirection")

    wfHost.PropertyMap.Add( _
        "FlowDirection", _
        New PropertyTranslator(AddressOf OnFlowDirectionChange))
End Sub


' The OnFlowDirectionChange method translates a 
' Windows Presentation Foundation FlowDirection value 
' to a Windows Forms RightToLeft value and assigns
' the result to the hosted control's RightToLeft property.
Private Sub OnFlowDirectionChange( _
ByVal h As Object, _
ByVal propertyName As String, _
ByVal value As Object)

    Dim host As WindowsFormsHost = h

    Dim fd As System.Windows.FlowDirection = _
        CType(value, System.Windows.FlowDirection)

    Dim cb As System.Windows.Forms.CheckBox = host.Child

    cb.RightToLeft = IIf(fd = System.Windows.FlowDirection.RightToLeft, _
        RightToLeft.Yes, _
        RightToLeft.No)

End Sub


' The cb_CheckedChanged method handles the hosted control's
' CheckedChanged event. If the Checked property is true,
' the flow direction is set to RightToLeft, otherwise it is
' set to LeftToRight.
Private Sub cb_CheckedChanged( _
ByVal sender As Object, _
ByVal e As EventArgs)

    Dim cb As System.Windows.Forms.CheckBox = sender

    wfHost.FlowDirection = IIf(cb.CheckState = CheckState.Checked, _
    System.Windows.FlowDirection.RightToLeft, _
    System.Windows.FlowDirection.LeftToRight)

End Sub

Comentários

Use a PropertyMap classe para definir traduções entre propriedades Windows Forms e propriedades de Windows Presentation Foundation (WPF) em um aplicativo híbrido. As ElementHost.PropertyMap propriedades e WindowsFormsHost.PropertyMap propriedades nas classes e WindowsFormsHost definem ElementHost mapeamentos de uma tecnologia para a outra.

Para obter mais informações, consulte Passo a passo : Mapeando propriedades usando o controle ElementHost e o passo a passo: mapeando propriedades usando o elemento WindowsFormsHost.

Construtores

PropertyMap()

Inicializa uma nova instância da classe PropertyMap.

PropertyMap(Object)

Inicializa uma nova instância da classe PropertyMap com o objeto de origem determinado.

Propriedades

DefaultTranslators

Obtém uma coleção de mapeamentos de propriedades definidas por padrão.

Item[String]

Obtém ou define o delegado PropertyTranslator para a propriedade especificada.

Keys

Obtém um objeto ICollection contendo os nomes de propriedade na coleção PropertyMap.

SourceObject

Obtém o objeto que tem as propriedades a serem convertidas.

Values

Obtém um ICollection que contém os conversores tradutores de propriedade na coleção PropertyMap.

Métodos

Add(String, PropertyTranslator)

Adiciona um delegado PropertyTranslator para a propriedade especificada para o PropertyMap.

Apply(String)

Executa o conversor de propriedade para a propriedade especificada, com base no valor da propriedade atual do objeto de origem.

ApplyAll()

Executa o conversor de propriedade para a propriedade especificada, com base nos valores da propriedade atual do objeto de origem.

Clear()

Remove todos os mapeamentos de propriedade.

Contains(String)

Obtém um valor que indica se a propriedade especificada está mapeada.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Remove(String)

Exclui a propriedade especificada do mapeamento.

Reset(String)

Restaura o mapeamento de propriedade padrão para a propriedade especificada.

ResetAll()

Restaura os mapeamentos de propriedade padrão.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

PropertyMappingError

Ocorre quando uma exceção é gerada por um conversor de propriedade.

Aplica-se a

Confira também