WPF, XAML

[WPF강의]1.3 WPF 클래스 계층구조

오라클왕 0 674 04.13 15:42

 

1.3 WPF 클래스 계층구조

 

n  System.Object

기본적인 WPF 프로그래밍 모델은 Managed Code를 통해 노출되는데 그 최상위에 System.Object가 존재 한다. CLR에서는 보다 생산적이며 강력한 개발 작업을 수행하는 데 유용한 여러 기능(메모리 관리, 오류 처리, 공용 형식 시스템 등)을 제공한다.

 

n  System.Threading.DispatcherObject

WPF는 단일 쓰레드 모델(STA)를 사용하는데 유저 인터페이스 전체를 하나의 쓰레드가 소유하는 것을 의미하며 이를 위해서 디스패처의 지배를 받는다. 대부분의 개체는 동시성 및 쓰레드 처리를 위한 기본구문을 제공하는 DispatcherObject에서 파생된다. 디스패처는 우선 순위가 지정된 여러 개의 큐가 있는 시스템으로 마우스 이동, 프레임워크 기능(레이아웃), 사용자의 메서드 실행하고자 하면 DispatcherObject를 상속받아 STA 쓰레드로 CLR 개체를 만들면 생성 시 디스패처에 포인터가 지정되고 관리를 받게된다.

 

n  System.Windows.DependencyObject

데이터 바인딩을 사용하기 위해서는 바인드의 양쪽(소스, 타겟)이 변화에 대한 알림을 지원해야 한다. 어떤 메소드가 속성 값에 연결되려면 속성 값이 변경될 때 알림을 받아야 하는데 닷넷 프레임워크에서 개체가 속성의 변화를 알릴 수 있는 INotifyPropertyChange 인터페이스가 있지만 이것은 선택사항이다.

 

데이터 바인딩에 의존속성(Dependency Property)이 사용되는데 이 의존속성을 래핑하는 클래스에서 DependencyObject를 상속받고 의존속성을 싸고 있는 속성 등에서 DependencyObjectGetValue, SetValue 메소드를 호출하여 외부로 값을 주거나 외부로부터 입력되는 값으로 의존속성을 설정한다. 이부분은 데이터바인딩 부분에서 살펴보자.

 

n  System.Windows.Media.Visual

WPF 시스템이 정의되면 다음 단계는 화면에서 픽셀을 그리는 것인데 Visual 클래스는 시각적 개체들을 빌드하기 위해 렌더링하는 방법에 대한 메타데이터를 제공한다. Visual은 매우 간단하고 유연하므로 대부분의 기능에 공개 API 노출이 없고 이러한 기능이 보호되는 콜백 기능에 크게 의존한다.

 

Visual WPF 컴퍼지션 시스템의 진정한 진입점으로 두 하위 시스템인 Managed APIUnManaged milcore 사이의 연결 지점이다.

 

n  System.Windows.UIElement

UIElement는 레이아웃, 입력 및 이벤트를 비롯한 핵심 하위 시스템을 정의한다.

레이아웃은 WPF의 핵심 개념으로 대부분의 시스템에는 고정된 레이아웃이 있거나 레이아웃 모델이 아예 없다(User32는 실제로 절대 위치 지정만 지원).

 

n  System.Windows.FrameworkElement

WPF 요소에 WPF 프레임워크 수준의 속성, 이벤트 및 메서드 집합을 제공한다. 이 클래스는 UIElement에 정의된 몇가지 멤버에 대해 구현을 했다.

 

 

System.Object

  System.Windows.Threading.DispatcherObject

    System.Windows.DependencyObject

      System.Windows.Media.Visual

        System.Windows.UIElement

          System.Windows.FrameworkElement

                 ….. 여러 컨트롤들

 

 

 

자마린교육,자마린학원,구로자마린학원, 구로자마린교육,자마린강좌,WPF실무교육, 자마린실무교육, 자마린예제, WPF예제, C#학원, C#교육, WPF학원, WPF교육, XAMARIN교육, XAMARIN학원, 자마린학원 ,자마린교육, 구로닷넷교육, 구로자마린교육, 구로WPF교육, 강남WPF교육, 강남자마린교육, 구로닷넷학원, 구로자마린학원, 구로WPF학원,자마린강의,자마린 HelloWolrd,강남WPF학원, 강남자마린학원,C#강의, 자마린강의, 닷넷강의, WPF강의, WPF강좌, C#강좌, 닷넷강좌 

 

Comments