WPF 클래스 계층 구조 개요
WPF는 풍부한 사용자 인터페이스를 만들기 위해 다양한 요소들이 포함된 복잡한 클래스 계층 구조를 가지고 있습니다. 주요 클래스는 다음과 같이 구성됩니다:
- System.Object
- 모든 클래스의 최상위 부모 클래스.
- System.Windows.Threading.DispatcherObject
- WPF의 모든 UI 객체가 DispatcherObject를 상속
- WPF의 스레딩 모델에서 UI 스레드에서만 UI를 접근할 수 있도록 보장.
- System.Windows.DependencyObject
- WPF에서 의존성 속성을 사용할 수 있도록 지원.
- System.Windows.Media.Visual
- WPF의 렌더링 시스템과 직접적으로 상호 작용하는 기본 클래스.
- System.Windows.UIElement
- 이벤트와 명령을 처리하고, 레이아웃, 포커스, 마우스 및 키보드 이벤트 등을 다룸.
- System.Windows.FrameworkElement
- 스타일, 데이터 바인딩, 리소스, 템플릿, 애니메이션 등을 지원.
- System.Windows.Controls.Control
- 버튼, 텍스트 박스, 목록 등 UI 제어 요소의 부모 클래스.
- System.Windows.Controls.ContentControl
- 단일 자식을 가질 수 있는 컨트롤 (Button, Label, Window 등).
- System.Windows.Controls.ItemsControl
- 여러 자식을 가질 수 있는 컨트롤 (ListBox, ComboBox, Menu 등).
- System.Windows.Shapes.Shape
- 기하학적인 도형 요소 (Rectangle, Ellipse 등).
WPF의 구조도를 그린다면 다음과 같은 요소들이 포함될 수 있습니다:
- Application 클래스가 최상위에 있고, WPF 애플리케이션의 전체 수명 주기를 관리.
- Window 클래스가 Application의 자식으로 UI 레이아웃의 주 틀을 구성.
- 각 Window는 Visual Tree와 Logical Tree를 가지고 있어, 여러 FrameworkElement들이 논리적으로 배치되고, 시각적으로 렌더링.
- UIElement는 다양한 컨트롤(Control), 콘텐츠 컨트롤(ContentControl), 아이템 컨트롤(ItemsControl) 등으로 분리됨.
- Layout 시스템에서는 Grid, StackPanel, Canvas 등의 컨테이너가 다양한 UI 요소를 배치.
- Input 시스템, Command 시스템, Data Binding 시스템, Animation, 그리고 스타일 및 템플릿 시스템이 각각의 요소들과 상호작용.
'프로그래밍&IT > C#.WPF' 카테고리의 다른 글
Winform (윈폼)의 컨트롤 이벤트와 WPF의 Routed event간의 차이 / RoutedEventArgs에서 많이 사용되는 내용 (0) | 2024.09.30 |
---|---|
[C# WPF] 첨부 프로퍼티 (Attached Property)란? (0) | 2024.09.29 |
의존 프로퍼티 (Dependency Property) (2) | 2024.09.28 |
[C# - WPF] x: 의 의미 (0) | 2024.09.13 |