Windows Forms 및 WPF 속성 매핑
Windows Forms 및 WPF 기술에는 두 가지 서로 유사 하지만 다른 속성 모델이 포함 됩니다. 속성 매핑은 두 아키텍처 간의 상호 운용성을 지원하며 다음과 같은 기능을 제공합니다.
호스트 환경의 관련 속성 변경 내용을 호스트된 컨트롤 또는 요소에 쉽게 매핑할 수 있습니다.
가장 일반적으로 사용되는 속성을 매핑하기 위한 기본 처리를 제공합니다.
기본 속성을 쉽게 제거, 재정의 또는 확장할 수 있습니다.
호스트의 속성 값 변경 내용이 자동으로 검색되고 호스트된 컨트롤 또는 요소로 변환됩니다.
참고
속성 변경 이벤트는 호스팅 컨트롤 또는 요소 계층 구조로 전파되지 않습니다. 직접 설정, 스타일, 상속, 데이터 바인딩 또는 속성 값을 변경하는 다른 메커니즘으로 인해 속성의 로컬 값이 변경되지 않는 경우 속성 변환이 수행되지 않습니다.
WindowsFormsHost 요소의 PropertyMap 속성과 ElementHost 컨트롤의 PropertyMap 속성을 사용하여 속성 매핑에 액세스합니다.
WindowsFormsHost 요소를 사용하는 속성 매핑
WindowsFormsHost 요소는 다음 변환 테이블을 사용하여 기본 WPF 속성을 해당 Windows Forms 속성으로 변환합니다.
Windows Presentation Foundation 호스팅 | Windows Forms | 상호 운용 동작 |
---|---|---|
Background (System.Windows.Media.Brush) |
BackColor (System.Windows.Media.Brush) |
WindowsFormsHost 요소는 호스트된 컨트롤의 BackColor 속성과 호스트된 컨트롤의 BackgroundImage 속성을 설정합니다. 매핑은 다음 규칙을 사용하여 수행됩니다. - Background가 단색인 경우 변환되고 호스트된 컨트롤의 BackColor 속성을 설정하는 데 사용됩니다. BackColor 속성은 호스트된 컨트롤에서 설정되지 않는데, 호스트된 컨트롤에서 BackColor 속성을 값을 상속할 수 있기 때문입니다. 참고: 호스트된 컨트롤은 투명도를 지원하지 않습니다. BackColor에 할당된 색상은 완전히 불투명해야 하며, 알파 값은 0xFF여야 합니다. - Background가 단색이 아닌 경우 WindowsFormsHost 컨트롤은 Background 속성에서 비트맵을 만듭니다. WindowsFormsHost 컨트롤이 이 비트맵을 호스트된 컨트롤의 BackgroundImage 속성에 할당합니다. 투명도와 유사한 효과를 제공합니다. 참고: 이 동작을 재정의하거나 Background 속성 매핑을 제거할 수 있습니다. |
Cursor | Cursor | 기본 매핑이 다시 할당되지 않았다면 WindowsFormsHost 컨트롤은 Cursor 속성 집합의 상위 항목을 찾을 때까지 상위 항목 계층 구조를 트래버스합니다. 이 값은 가장 가까운 해당 Windows Forms 커서로 변환됩니다. ForceCursor 속성에 대한 기본 매핑이 재할당되지 않았다면 트래버스는 ForceCursor가 true 로 설정된 첫 번째 상위 항목에서 중지합니다. |
FlowDirection (System.Windows.Media.Brush) |
RightToLeft (System.Windows.Media.Brush) |
LeftToRight은 No에 매핑됩니다. LeftToRight은 No에 매핑됩니다. Inherit이 매핑되지 않습니다. LeftToRight은 No에 매핑됩니다. |
FontStyle | 호스트된 컨트롤의 System.Drawing.Font의 Style. | WPF 속성 집합은 해당 Font로 변환됩니다. 이러한 속성 중 하나가 변경되면 새 Font가 만들어집니다. Normal: Italic이 사용하지 않도록 설정됩니다. Italic 또는 Oblique: Italic이 사용 설정됩니다. |
FontWeight | 호스트된 컨트롤의 System.Drawing.Font의 Style. | WPF 속성 집합은 해당 Font로 변환됩니다. 이러한 속성 중 하나가 변경되면 새 Font가 만들어집니다. Black, Bold, DemiBold, ExtraBold, Heavy, Medium, SemiBold 또는 UltraBold: Bold가 사용 설정됩니다. ExtraLight, Light, Normal, Regular, Thin 또는 UltraLight: Bold가 사용하지 않도록 설정됩니다. |
FontFamily FontSize FontStretch FontStyle FontWeight |
Font (System.Windows.Media.Brush) |
WPF 속성 집합은 해당 Font로 변환됩니다. 이러한 속성 중 하나가 변경되면 새 Font가 만들어집니다. 호스트된 Windows Forms 컨트롤의 크기는 글꼴 크기에 따라 조정됩니다. WPF의 글꼴 크기는 1/96인치이고, Windows Forms의 경우 1/72인치입니다. 해당 변환은 다음과 같습니다. Windows Forms 글꼴 크기 = WPF 글꼴 크기 * 72.0 / 96.0. |
Foreground (System.Windows.Media.Brush) |
ForeColor (System.Windows.Media.Brush) |
Foreground 속성 매핑은 다음 규칙을 사용하여 수행됩니다. - Foreground가 SolidColorBrush인 경우 Color를 ForeColor에 사용합니다. - Foreground가 GradientBrush인 경우 ForeColor의 가장 낮은 오프셋 값에 GradientStop 색상을 사용합니다. - 다른 Brush 형식의 경우 ForeColor를 변경하지 않은 채로 둡니다. 즉, 기본값이 사용됩니다. |
IsEnabled | Enabled | IsEnabled가 설정되면 WindowsFormsHost 요소가 호스트된 컨트롤의 Enabled 속성을 설정합니다. |
Padding | Padding | 호스트된 Windows Forms 컨트롤의 Padding 속성에 대한 4개의 모든 값이 동일한 Thickness 값으로 설정됩니다. - MaxValue보다 큰 값은 MaxValue로 설정됩니다. - MinValue보다 작은 값은 MinValue로 설정됩니다. |
Visibility | Visible | - Visible은 Visible = true 에 매핑됩니다. 호스트된 Windows Forms 컨트롤이 표시됩니다. 호스트된 컨트롤의 Visible 속성을 명시적으로 false 로 설정하는 것은 좋지 않습니다.- Collapsed는 Visible = true 또는 false 에 매핑됩니다. 호스트된 Windows Forms 컨트롤이 그려지지 않고, 해당 영역이 축소됩니다.- Hidden: 호스트된 Windows Forms 컨트롤이 레이아웃의 공간을 차지하지만 보이지 않습니다. 이 경우 Visible 속성은 true 로 설정됩니다. 호스트된 컨트롤의 Visible 속성을 명시적으로 false 로 설정하는 것은 좋지 않습니다. |
컨테이너 요소의 연결된 속성은 WindowsFormsHost 요소에서 완전히 지원됩니다.
자세한 내용은 연습: WindowsFormsHost 요소를 사용하여 속성 매핑을 참조하세요.
부모 속성에 대한 업데이트
대부분의 부모 속성을 변경하면 호스트된 자식 컨트롤에 대한 알림이 발생합니다. 다음 목록에서는 값이 변경될 때 알림을 발생시키지 않는 속성에 대해 설명합니다.
예를 들어 WindowsFormsHost 요소의 Background 속성 값을 변경하는 경우 호스트된 컨트롤의 BackColor 속성은 변경되지 않습니다.
ElementHost 컨트롤을 사용하여 속성 매핑
다음 속성은 기본 제공 변경 알림을 제공합니다. 이러한 속성을 매핑할 때 OnPropertyChanged 메서드를 호출하지 마세요.
AutoSize
BackColor
BackgroundImage
BackgroundImageLayout
BindingContext
CausesValidation
ContextMenu
ContextMenuStrip
커서
Dock
사용
글꼴
ForeColor
위치
Margin
안쪽 여백
Parent
지역
RightToLeft
크기
TabIndex
TabStop
텍스트
표시
ElementHost 컨트롤은 다음 변환 테이블을 사용하여 기본 WPF 속성을 해당 Windows Forms 속성으로 변환합니다.
자세한 내용은 연습: ElementHost 컨트롤을 사용하여 속성 매핑을 참조하세요.
참고 항목
.NET Desktop feedback