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 -> unit
Public 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
설명
설정할 때 새 대리자가 propertyName
없는 경우 PropertyTranslator 새 대리자가 PropertyMap추가됩니다. PropertyTranslator 에 대해 propertyName
이미 있는 경우 발생 InvalidOperationException 합니다.