PropertyMap.Add(String, PropertyTranslator) 方法  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将给定属性的 PropertyTranslator 委托添加到 PropertyMap 中。
public:
 void Add(System::String ^ propertyName, System::Windows::Forms::Integration::PropertyTranslator ^ translator);public void Add(string propertyName, System.Windows.Forms.Integration.PropertyTranslator translator);member this.Add : string * System.Windows.Forms.Integration.PropertyTranslator -> unitPublic Sub Add (propertyName As String, translator As PropertyTranslator)参数
- propertyName
- String
要映射的属性的名称。
- translator
- PropertyTranslator
在 propertyName 更改时调用的 PropertyTranslator 委托。
例外
              propertyName 已有一个映射。
示例
下面的代码示例演示如何将 属性的 Margin 映射添加到 ElementHost 控件。
// 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
下面的代码示例演示如何将 属性的 Clip 映射添加到 WindowsFormsHost 控件。
// The AddClipMapping method adds a custom 
// mapping for the Clip property.
private void AddClipMapping()
{
    wfHost.PropertyMap.Add(
        "Clip",
        new PropertyTranslator(OnClipChange));
}
// The OnClipChange method assigns an elliptical clipping 
// region to the hosted control's Region property.
private void OnClipChange(object h, String propertyName, object value)
{
    WindowsFormsHost host = h as WindowsFormsHost;
    System.Windows.Forms.CheckBox cb = host.Child as System.Windows.Forms.CheckBox;
    if (cb != null)
    {
        cb.Region = this.CreateClipRegion();
    }
}
// The Window1_SizeChanged method handles the window's 
// SizeChanged event. It calls the OnClipChange method explicitly 
// to assign a new clipping region to the hosted control.
private void Window1_SizeChanged(object sender, SizeChangedEventArgs e)
{
    this.OnClipChange(wfHost, "Clip", null);
}
// The CreateClipRegion method creates a Region from an
// elliptical GraphicsPath.
private Region CreateClipRegion()
{   
    GraphicsPath path = new GraphicsPath();
    path.StartFigure(); 
    path.AddEllipse(new System.Drawing.Rectangle( 
        0, 
        0, 
        (int)wfHost.ActualWidth, 
        (int)wfHost.ActualHeight ) );
    path.CloseFigure(); 
    return( new Region(path) );
}
' The AddClipMapping method adds a custom mapping 
' for the Clip property.
Private Sub AddClipMapping()
    wfHost.PropertyMap.Add( _
        "Clip", _
        New PropertyTranslator(AddressOf OnClipChange))
End Sub
' The OnClipChange method assigns an elliptical clipping 
' region to the hosted control's Region property.
Private Sub OnClipChange( _
ByVal h As Object, _
ByVal propertyName As String, _
ByVal value As Object)
    Dim host As WindowsFormsHost = h
    Dim cb As System.Windows.Forms.CheckBox = host.Child
    If cb IsNot Nothing Then
        cb.Region = Me.CreateClipRegion()
    End If
End Sub
' The Window1_SizeChanged method handles the window's 
' SizeChanged event. It calls the OnClipChange method explicitly 
' to assign a new clipping region to the hosted control.
Private Sub Window1_SizeChanged( _
ByVal sender As Object, _
ByVal e As SizeChangedEventArgs)
    Me.OnClipChange(wfHost, "Clip", Nothing)
End Sub
' The CreateClipRegion method creates a Region from an
' elliptical GraphicsPath.
Private Function CreateClipRegion() As [Region] 
    Dim path As New GraphicsPath()
    
    path.StartFigure()
    
    path.AddEllipse(New System.Drawing.Rectangle( _
        0, _
        0, _
        wfHost.ActualWidth, _
        wfHost.ActualHeight))
    
    path.CloseFigure()
    
    Return New [Region](path)
End Function
注解
设置 时,如果 不存在 PropertyTranslatorpropertyName,则会将新委托添加到 。PropertyMap 
              PropertyTranslator如果 已存在 ,propertyNameInvalidOperationException则会引发 。