크리에이티브 커먼즈 라이선스
Creative Commons License

안녕하세요. 세티입니다.^^

너무 오랜만에 강좌를 쓰네요. 슬럼프도 있었고, 게으르기도 했으며, 회사일도 바빴고 그랬습니다.ㅎㅎ 물론 다 핑계라는 거 아시죠? 요즘 세상에 바쁘지 않은 사람이 없을테니 말입니다.

예전처럼 매주 강좌를 올리진 못하지만 그래도 틈나는대로 올리고자 마음 먹었습니다. 천성이 얽매이는 것을 별로 좋아하지 않아 '주기적으로 올려야지.' 라고 마음 먹어버리는 순간 바로 지쳐 버립니다.ㅋㅋ

그럼 강좌를 시작하도록 하겠습니다.^^
세티의 새로운 강좌는 <세티의 WPF>라는 타이틀로 하겠습니다.

1. WPF 코어 타입과 인프라스트럭쳐
Windows Presentation Foundation(WPF)는 core set이자 인프라스트럭쳐 입니다. 이것은 WPF를 이해하는데 매우 중요합니다. 왜냐구요??? 그래야 앞으로 이해가 잘될테니까요...^^

WPF는 4개의 중요한 클래스 블럭을 가지고 있는데요~ 그것은 UIElement, FrameworkElement, ContentElement, FrameworkContentElement 클래스들 입니다.

이 4개의 클래스는 base element로 참조합니다. 왜냐하면 User Interface(UI)를 구성하는데 필요한 공통모델인 기본 폼을 제공하기 때문입니다.

WPF에서 하나의 UI는 하나의 트리구조로 해석된 즉, 엘리먼트 트리로 잘 알려진 엘리먼트들의 집합입니다.
엘리먼트 트리는 user interface들을 생성하는데 논리적이고 직관적인 방법을 제공하죠.
이렇게 구조화가 되면 강력한 UI 서비스를 제공할 수 있게 됩니다.

WPF에서 UI 서비스들은 기본적으로 독립적인 프로퍼티 시스템(Dependency Properties System)입니다. 프로퍼티는 엘리먼트를 활성화 하는데 사용되구요, 프로퍼티의 값은 엘리먼트 트리 내의 자식 엘리먼트들에게 자동적으로 공유가 됩니다.
예를 들어서 이 프로퍼티 시스템을 이용하여 윈도우의 배경색을 설정하면 윈도우즈의 모든 자식 엘리먼트들은 자동적으로 배경색이 적용됩니다. 물론 자식 엘리먼트들은 배경색이 지정되어 있지 않아야 합니다.^^

또 다른 서비스로는 이벤트 시스템(Events System)입니다. 마이크로소프트 닷넷 버전 3.0은 직접적(Directly) 이벤트를 제공하는데 그것은 엘리먼트에서 발생합니다.
엘리먼트에서 라우트된(routed) 이벤트는 이벤트 생성자와 루트 엘리먼트 사이를 라우트 합니다.
라우트되는 이벤트는 2가지의 타입을 가지는데 bubblestunnel 이라고 합니다.
bubbles라는 타입은 생성자에서 트리로 이동(up)하는 것을 말하는데 이벤트를 핸들링하기 위한 옵션을 모든 부모 엘리먼트들에게 제공합니다. tunnels라는 타입은 bubbles와 반대로 움직이는데 모든 부모 엘리먼트들에게 이벤트 미리보기를 제공합니다.

이벤트를 핸들하는 중요한 이유는 사용자 입력 프로세스 그리고 캡쳐를 하기 위해서 입니다.
WPF에서 Input System은 직접적이고 라우트된 이벤트를 구체화 하는게 목적입니다. 또한 그것은 text input, focus management, mouse 포지셔닝을 위해서도 지원됩니다.

Input System을 직접적으로 조종하는 것은 Input devices에 의해 이루어집니다.
즉, commanding system이라는 것인데 이것은 액션으로 인한 응답을 코드로 부터 입력 액션을 분리하는 추상계층을 제공합니다. commanding system은 command 디자인 패턴으로 모델링 되어져 있습니다.

아 졸립네요... 오늘은 여기까지~ ^^*

키워드
1. Base Elements
2. Element Tree
3. Dependency Properties
4. Routed Events
5. Input
6. Commanding

Posted by -세티-

TRACKBACK http://www.setisigns.net/trackback/33 관련글 쓰기

댓글을 달아 주세요