Windows Forms 및 WPF 속성 매핑
업데이트: 2007년 11월
Windows Forms 및 WPF 기술에는 서로 비슷하지만 다른 두 개의 속성 모델이 있습니다. 속성 매핑은 두 아키텍처 간의 상호 운용을 지원하며 다음 기능을 제공합니다.
호스트 환경에서의 관련 속성 변경 사항을 호스팅된 컨트롤 또는 요소에 보다 쉽게 매핑할 수 있습니다.
가장 자주 사용되는 속성을 매핑하기 위한 기본 처리를 제공합니다.
기본 속성을 쉽게 제거, 재정의 또는 확장할 수 있도록 합니다.
호스트에서의 속성 값 변경 사항이 자동으로 검색되어 호스팅된 컨트롤 또는 요소로 변환되도록 합니다.
참고
속성 변경 이벤트는 호스팅 컨트롤 또는 요소 계층 구조에서 위로 전파되지 않습니다. 직접 설정, 스타일, 상속, 데이터 바인딩 또는 속성 값을 변경하는 기타 메커니즘으로 인해 속성의 로컬 값이 변경되지 않으면 속성 변환이 수행되지 않습니다.
WindowsFormsHost 요소의 PropertyMap 속성과 ElementHost 컨트롤의 PropertyMap 속성을 사용하여 속성 매핑에 액세스합니다.
WindowsFormsHost 요소로 속성 매핑
WindowsFormsHost 요소는 다음 변환 표를 사용하여 기본 WPF 속성을 이에 상응하는 Windows Forms로 변환합니다.
Windows Presentation Foundation 호스팅 |
Windows Forms |
상호 운용 동작 |
---|---|---|
WindowsFormsHost 요소는 호스팅된 컨트롤의 BackColor 속성과 호스팅된 컨트롤의 BackgroundImage 속성을 설정합니다. 매핑은 다음 규칙을 사용하여 수행됩니다.
참고 호스팅된 컨트롤은 투명도를 지원하지 않습니다. BackColor에 할당된 모든 색상은 알파 값 0xFF로 완전히 불투명해야 합니다.
참고 이 동작을 재정의하거나 Background 속성 매핑을 제거할 수 있습니다. |
||
기본 매핑이 다시 할당되지 않으면 WindowsFormsHost 컨트롤은 Cursor 속성이 설정된 상위 항목을 찾을 때까지 상위 계층 구조를 순회합니다. 이 값은 가장 유사한 Windows Forms 커서로 변환됩니다. ForceCursor 속성의 기본 매핑이 다시 할당되지 않으면 ForceCursor가 true로 설정된 첫 번째 상위 항목에서 순회가 중지됩니다. |
||
LeftToRight는 No에 매핑됩니다. RightToLeft는 Yes에 매핑됩니다. Inherit는 매핑되지 않습니다. FlowDirection.RightToLeft는 RightToLeft.Yes에 매핑됩니다. |
||
호스팅된 컨트롤의 System.Drawing.Font에 있는 Style |
WPF 속성의 집합은 해당 Font로 변환됩니다. 이러한 속성 중 하나가 변경될 때 새 Font가 만들어집니다. Normal의 경우 Italic을 사용할 수 없습니다. Italic 또는 Oblique의 경우 Italic을 사용할 수 있습니다. |
|
호스팅된 컨트롤의 System.Drawing.Font에 있는 Style |
WPF 속성의 집합은 해당 Font로 변환됩니다. 이러한 속성 중 하나가 변경될 때 새 Font가 만들어집니다. Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold 또는 UltraBold의 경우 Bold를 사용할 수 있습니다. ExtraLight, Light, Normal, Regular, Thin 또는 UltraLight의 경우 Bold를 사용할 수 없습니다. |
|
WPF 속성의 집합은 해당 Font로 변환됩니다. 이러한 속성 중 하나가 변경될 때 새 Font가 만들어집니다. 호스팅된 Windows Forms 컨트롤은 글꼴 크기를 기준으로 크기가 조정됩니다. WPF에서 글꼴 크기는 1/96인치로 표현되며 Windows Forms에서는 1/72인치로 표현됩니다. 해당 변환은 다음과 같습니다. Windows Forms 글꼴 크기 = WPF 글꼴 크기 * 72.0 / 96.0 |
||
Foreground 속성 매핑은 다음 규칙을 사용하여 수행됩니다.
|
||
IsEnabled가 설정되어 있으면 WindowsFormsHost 요소가 호스팅된 컨트롤에 Enabled 속성을 설정합니다. |
||
호스팅된 Windows Forms 컨트롤에 있는 Padding 속성의 네 개의 값 모두는 동일한 Thickness 값으로 설정됩니다. |
||
|
컨테이너 요소에 연결된 속성은 WindowsFormsHost 요소에서 완전히 지원됩니다.
자세한 내용은 연습: WindowsFormsHost 요소를 사용하여 속성 매핑을 참조하십시오.
부모 속성에 대한 업데이트
최상위 부모 속성을 변경하면 호스팅된 자식 컨트롤에 알림을 보냅니다. 다음 목록에서는 값이 변경될 때 알림을 보내지 않는 속성을 설명합니다.
예를 들어 WindowsFormsHost 요소의 Background 속성 값을 변경하는 경우 호스팅된 컨트롤의 BackColor 속성은 변경되지 않습니다.
ElementHost 컨트롤로 속성 매핑
다음 속성은 기본 제공 변경 알림을 제공합니다. 다음과 같은 속성을 매핑할 때는 OnPropertyChanged 메서드를 호출하지 마십시오.
AutoSize
BackColor
BackgroundImage
BackgroundImageLayout
BindingContext
CausesValidation
ContextMenu
ContextMenuStrip
Cursor
Dock
Enabled
Font
ForeColor
Location
Margin
Padding
Parent
Region
RightToLeft
Size
TabIndex
TabStop
Text
Visible
ElementHost 컨트롤은 다음 변환 표를 사용하여 기본 Windows Forms 속성을 이에 상응하는 WPF로 변환합니다.
자세한 내용은 연습: ElementHost 컨트롤을 사용하여 속성 매핑을 참조하십시오.
Windows Forms 호스팅 |
Windows Presentation Foundation |
상호 운용 동작 |
---|---|---|
호스팅된 요소에 있는 (System.Windows.Media.Brush) |
이 속성을 설정하면 ImageBrush로 강제로 다시 칠합니다. BackColorTransparent 속성이 false(기본값)로 설정되어 있으면 이 ImageBrush가 ElementHost 컨트롤의 모양을 기준으로 합니다. 이 기준에는 해당 BackColor, BackgroundImage, BackgroundImageLayout 속성 및 연결된 모든 Paint 처리기가 포함됩니다. BackColorTransparent 속성이 true로 설정되어 있으면 이 ImageBrush가 ElementHost 컨트롤 부모의 모양을 기준으로 합니다. 이 기준에는 부모의 BackColor, BackgroundImage, BackgroundImageLayout 속성 및 연결된 모든 Paint 처리기가 포함됩니다. |
|
호스팅된 요소에 있는 (System.Windows.Media.Brush) |
이 속성을 설정하면 BackColor 매핑에 대해 설명된 것과 동일한 동작이 발생합니다. |
|
호스팅된 요소에 있는 (System.Windows.Media.Brush) |
이 속성을 설정하면 BackColor 매핑에 대해 설명된 것과 동일한 동작이 발생합니다. |
|
Windows Forms 표준 커서는 상응하는 WPF 표준 커서로 변환됩니다. Windows Forms가 표준 커서가 아니면 기본값이 할당됩니다. |
||
Enabled가 설정되어 있으면 ElementHost 컨트롤이 호스팅된 요소에 IsEnabled 속성을 설정합니다. |
||
Font 값은 상응하는 WPF 글꼴 속성의 집합으로 변환됩니다. |
||
호스팅된 요소에 있는 FontWeight |
Bold가 true이면 FontWeight가 Bold로 설정됩니다. Bold가 false이면 FontWeight가 Normal로 설정됩니다. |
|
호스팅된 요소에 있는 FontStyle |
||
호스팅된 요소에 있는 TextDecorations |
TextBlock 컨트롤을 호스팅할 때만 적용됩니다. |
|
호스팅된 요소에 있는 TextDecorations |
TextBlock 컨트롤을 호스팅할 때만 적용됩니다. |
|
No는 LeftToRight에 매핑됩니다. Yes는 RightToLeft에 매핑됩니다. |
||
ElementHost 컨트롤은 다음 규칙을 사용하여 호스팅된 요소에 Visibility 속성을 설정합니다. |
참고 항목
작업
연습: WindowsFormsHost 요소를 사용하여 속성 매핑
연습: ElementHost 컨트롤을 사용하여 속성 매핑
개념
Windows Presentation Foundation 및 Windows Forms 상호 운용에서 지원되는 시나리오