본문으로 바로가기

WPF (Windows Presentation Foundation)

category Development/C# 2012. 2. 24. 12:10
Windows Presentation Foundation(이하 WPF) 소개

개요

WPF는 애플리케이션 사용자 경험 확대를 위해 마이크로소프트에서 개발한 차세대 UI framework이다.
WPF는 .NET 프레임워크의 3.0 이상부터 포함된 개념이다.

WPF에는 애플리케이션의 UI들과 2D 그래픽, 3D 그래픽, 문서 멀티미디어 등을 하나의 프레임 워크에 담았다.
WPF는 벡터 기반의 렌더링 엔진을 도입해 그래픽 카드의 하드웨어 가속을 사용한다. 이를 바탕으로 보다 빠른 UI와
해상도에 독립적이면서 확대 축소가 가능해졌다.

다음의 그림은 WPF의 주요 특징들을 보여준다.


 외형과 동작의 분리

WPF는 UI와 동작을 분리시켰다. 외형은 Extensible Application Markup Language(XAML)로 정의해주며, 동작은 C#과 같은 언어로 정의된다.
이 두가지 영역이 이벤트(events)와 명령(commands)으로 데이터 바인딩을 통해 서로 묶여 있다. 외형과 동작의 분리는 다음과 같은 장점이 있다.

외형과 동작이 루즈하게 커플링되어 있다.
디자이너와 개발자가 분리된 모델에서 작업할 수 있다.
그래픽 디자인 툴을 이용해 코드 파싱 대신 simple XML에서 간단하게 처리 할 수 있다.

Rich Composition
WPF에서 컨트롤들은 극단적으로 수정이 가능하다. 거의 모든 타입의 컨트롤들을 다른 것들의 컨텐트로 정의할 수 있다. 이런 유연성이 디자이너한텐 끔찍한 소식일지 몰라도, 적당한 곳에 사용한다면 이 기능이 얼마나 막강한지 알 수 있다. 버튼에 이미지를 넣거나
이미지 버튼을 만들거나, 비디오 파일의 목록을 콤보 박스 안에 넣는 것들이 가능해진다.



뛰어난 커스텀 기능

외형과 동작의 완벽한 분리를 통해 아주 손쉽게 컨트롤의 외형을 변경해줄 수 있다. styles 라는 것은 HTML CSS와 같다고 보면 된다.
templates를 통해 컨트롤의 모든 외형을 바꿀 수 있다.


해상도 독립성

WPF에서 모든 계산은 로지컬 유닛(logical unit)로 이루어진다. 일반적인 픽셀이 아니며, 로지컬 유닛은 1/96 인치이다.
화면의 해상도를 변경할 경우에도 UI는 같은 크기를 유지한다. WPF부터 벡터 기반의 렌더링 엔진을 사용해 확대 축소가 가능한 UI 제작이 엄청나게 쉬워졌다.


 참고 : http://wpftutorial.net/