Export (0) Print
Expand All

PropertyMap.Add Method

Adds a PropertyTranslator delegate for the given property to the PropertyMap.

Namespace:  System.Windows.Forms.Integration
Assembly:  WindowsFormsIntegration (in WindowsFormsIntegration.dll)

public void Add(
	string propertyName,
	PropertyTranslator translator
)

Parameters

propertyName
Type: System.String

The name of the property to map.

translator
Type: System.Windows.Forms.Integration.PropertyTranslator

The PropertyTranslator delegate which is called when propertyName changes.

ExceptionCondition
InvalidOperationException

propertyName has an existing mapping.

When setting, if no PropertyTranslator exists for propertyName, the new delegate is added to the PropertyMap. If a PropertyTranslator already exists for propertyName, an InvalidOperationException is raised.

The following code example shows how to add a mapping for the Margin property to an ElementHost control.

// 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 following code example shows how to add a mapping for the Clip property to a WindowsFormsHost control.

// 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) );
}

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft