본문 바로가기

프로그래밍&IT/C#.WPF

WPF의 클래스 계층구조

 

WPF 클래스 계층 구조 개요

WPF는 풍부한 사용자 인터페이스를 만들기 위해 다양한 요소들이 포함된 복잡한 클래스 계층 구조를 가지고 있습니다. 주요 클래스는 다음과 같이 구성됩니다:

  1. System.Object
    • 모든 클래스의 최상위 부모 클래스.
  2. System.Windows.Threading.DispatcherObject
    • WPF의 모든 UI 객체가 DispatcherObject를 상속
    • WPF의 스레딩 모델에서 UI 스레드에서만 UI를 접근할 수 있도록 보장.
  3. System.Windows.DependencyObject
    • WPF에서 의존성 속성을 사용할 수 있도록 지원.
  4. System.Windows.Media.Visual
    • WPF의 렌더링 시스템과 직접적으로 상호 작용하는 기본 클래스.
  5. System.Windows.UIElement
    • 이벤트와 명령을 처리하고, 레이아웃, 포커스, 마우스 및 키보드 이벤트 등을 다룸.
  6. System.Windows.FrameworkElement
    • 스타일, 데이터 바인딩, 리소스, 템플릿, 애니메이션 등을 지원.
  7. System.Windows.Controls.Control
    • 버튼, 텍스트 박스, 목록 등 UI 제어 요소의 부모 클래스.
  8. System.Windows.Controls.ContentControl
    • 단일 자식을 가질 수 있는 컨트롤 (Button, Label, Window 등).
  9. System.Windows.Controls.ItemsControl
    • 여러 자식을 가질 수 있는 컨트롤 (ListBox, ComboBox, Menu 등).
  10. System.Windows.Shapes.Shape
    • 기하학적인 도형 요소 (Rectangle, Ellipse 등).

WPF의 구조도를 그린다면 다음과 같은 요소들이 포함될 수 있습니다:

  1. Application 클래스가 최상위에 있고, WPF 애플리케이션의 전체 수명 주기를 관리.
  2. Window 클래스가 Application의 자식으로 UI 레이아웃의 주 틀을 구성.
  3. 각 Window는 Visual TreeLogical Tree를 가지고 있어, 여러 FrameworkElement들이 논리적으로 배치되고, 시각적으로 렌더링.
  4. UIElement는 다양한 컨트롤(Control), 콘텐츠 컨트롤(ContentControl), 아이템 컨트롤(ItemsControl) 등으로 분리됨.
  5. Layout 시스템에서는 Grid, StackPanel, Canvas 등의 컨테이너가 다양한 UI 요소를 배치.
  6. Input 시스템, Command 시스템, Data Binding 시스템, Animation, 그리고 스타일 및 템플릿 시스템이 각각의 요소들과 상호작용.