반응형

1. WPF개요

Windows Presentation Foundation

MS의 UI, 미디어 및 문서가 통합된 프로그래밍 모델(닷넷 3.0에 소개)

브라우저와 데스크톱에서 동시에 실행될 수 있는 프로그래밍 모델 제공.

Markup(XAML)과 코드 프로그래밍을 동시에 지원한다.

디자인이 가능한 프로그램 모델을 개발하였다. (Blend 프로그램으로 가능)

WPF는 DirectX를 Application UI에 통합했다.


2. WPF Architecture

 PresentationFramework

 PresentationCore

 Common Language Runtime

 

milcore 

 User32

DirectX 

 Kernel


PresentationFramework, PresentationCore : 순수한 관리코드로만 구성. 서로 분리되어 있음.

PresentationCore : API형태의 라이브러리, 컴포넌트 형태

milcore : DirectX와 효율적인 통신을 위해 비관리 코드로 제작된 부분. 개발자가 접근하기 힘듬.


WPF관련 어셈블리

WindowsBase.dll : WPF를 위한 기본 서비스 제공.

  DispatcherObject 

    Dispatcher : 복수의 작업을 대기시킬 수 있는 큐.

    namespace : System.Windows.Threading

    ※ STA : 실행 context에 하나의 쓰레드만 존재.

    Frame Queueing 가능 : Invoke(), BeginInvoke()

  DependencyObject

    WPF의 속성 시스템의 지원을 받기 위해 필요.

    프레임 수준의 바인딩 종속성, 손쉬운 데이터 공유 등을 객체 인스턴스에 저장하지 않고 가능.

    데이터 구조 중심 프로그래밍(XAML에서 이벤트와 액션까지 모델화하고 선언적으로 처리)


PresentationCore.dll

  Visual

    랜더링을 담당하는 객체. 컨트롤 클래스의 시작점. micore 컴포넌트와 밀접한 관련.

    WPF는 멀리 있는 객체를 먼저 그리고 가까이 있는 객체를 나중에 그린다.

    주요 기능 : 출력 표시. 변환, 클리핑, 적중 테스트, 경계 상자 계산.

    입출력, 이벤트 레이아웃 X

  UIElement

    Layout, 입력 및 이벤트 등의 핵심 기능을 담당.

    Measure : 크기를 정의, Arrange : 위치와 정렬. (2단계 레이아웃)

    입력과 Command의 분리 가능. -> CommandBinding으로 관리 가능.


PresentationFramework.dll

  FrameworkElement

    WPF 프레임워크 수준 요소 클래스와 UIElement 서비스를 연결해 주는 지점.

    레이아웃 시스템 정의 : 핵심 기능 손상 없이 새로운 레이아웃을 정의 가능.

    논리적 트리 : markup을 이용해 구조를 표현할 때 이용.

    객체 수명 이벤트 : Initialized, Loaded, Unloaded 세가지 지원.

    데이터 바인딩 및 동적 리소스 참조 지원 : Expression으로 바인딩 -> Framework는 해석.

    스타일 : 컨트롤의 외관을 변형하기 위해 사용.

    에니메이션 지원 

  Control

    탬플릿 지원 기능 : UI를 편리하게 수정 가능. 속성, 이벤트, Command, Template 기능 지원.

    XAML을 통한 탬플릿 정의 -> 랜더링 시 스트립트를 읽어 들여 반영

  

※ WPF 클래스 다이어그램 예시


반응형

+ Recent posts