WPF framework 를 배우기 시작한 사람이라면 먼저 class 구조를 파악해보자.
각 class 는 다음과 같은 특징이 있다.
Object : .NET 의 모든 class 의 가장 base class 이다. WPF 에만 한정되지 않는다.
DispatcherObject : WPF class 는 대부분 DispatcherObject 의 자식 class 이다. DispatcherObject 는 thread에 관련한 작업을 하며, 자식 class 들은 thread 를 사용할 수 있게 된다.
DependencyObject : WPF의 Dependency Property 를 지원하는 class 들은 DependencyObject 을 상속받아야 한다.
Freezable : Freezable class를 상속 받으면 '읽기'만 가능하다. 따라서, 다른 class 들과 다르게, 여러 개의 thread 사이에서 공유 가능하다. Frozen 객체들을 수정할 수는 없지만, '쓰기' 작업도 가능한 복사본을 만들 수는 있다. 대부분의 'Freezable' 은 기본 그래픽 class 들이다. (brushes, pens, geomentries, animation)
Visual : 2D 비쥬얼 표현을 갖는 모든 객체들의 부모 class 이다.
UIElement : 2D 비쥬얼 표현을 갖는 객체들 중에 routed events, command binding, layout, focus 를 지원하는 객체들은 UIElement class를 상속 받는다.
FrameworkElement : style, data binding, resource, control을 지원하는 class 이다.
Control : 모든 control 관련 객체의 부모 class 이다. Control은 FrameworkElement를 상속받으며, 다양한 property를 추가한다.
ContentElement : UIElement 와 유사하지만, 문서 데이터 관련하여 사용된다. 'Visual' class를 상속받는 class를 이용해서 화면에 표시된다.
FrameworkContentElement : style, data binding, resource, control 을 지원하는 class 이다.
'Computer Science > C#' 카테고리의 다른 글
WPF Thread 내부 원리 (0) | 2024.04.25 |
---|---|
C# Net Framework 역사 및 개념 정리 (C#, DotNet 구조 파악) (0) | 2023.12.17 |