 |
도서특징 |
전면 컬러 편집! WPF 베스트셀러! 18회 졸트상 테크니컬 북 파이널리스트 선정!
WPF
는 닷넷 프레임워크 3.0/3.5의 핵심 중 하나이며, 여러분이 상상하는 모든 것을 프로그램으로 구현할 수 있게 해준다. 기존
응용프로그램을 보다 더 매력적으로 변화시킬 뿐만 아니라 오디오/비디오, 3D, 동적 스키닝, 도큐먼트 지원, 음성 인식 등
지금까지 일반 개발자들이 접하기 어려웠던 부분들과도 쉽게 통합되어 있다.『WPF 언리쉬드』, 이 책에는 마이크로소프트의 실제
닷넷 프레임워크 핵심 개발자이자 최고의 개발자인 애덤 네이선의 모든 노하우와 지식이 담겨 있다. 따라서 그 어떤 WPF
서적보다도 이해하기 쉬우며, 실무에 곧바로 사용할 수 있는 좋은 예제들을 제공하고 있다.
애덤 네이선(Adam
Nathan)은 마이크로소프트 개발부의 선임개발연구원이며, 2002년 Sams에서 발간된 『.Net and Com: The
Complete Interoperability Guide』를 포함하여 여러 책들을 집필하였다. 애덤은 정기적으로 개발자
컨퍼런스에 참가하거나 마이크로소프트 사내에서 닷넷 프레임워크와 관련한 다양한 주제로 강연을 한다. 애덤은 1999년
마이크로소프트 CLR(Common Language Runtime) 팀에서 개발을 시작한 이후, 닷넷이 지속적으로 발전하는 데
핵심적인 역할을 수행해 왔다. 또한 그는 PINVOKE.NET이나 CLRSPY처럼 닷넷 개발자들에게 유용한 유틸리티를 만들어
배포하기도 하고, XAMLshare.com에서 XAML에 관한 정보를 제공하고 있다.
• XAML에 대해서 알아야 하는 모든 내용들을 효과적으로 다룬다. • 컨트롤, 화면배치, 리소스, 데이터 바인딩, 스타일, 그래픽, 애니메이션 등 WPF가 사용되는 대부분의 영역을 다룬다. • WPF 3D 개발팀의 선임개발자인 르헨 바우어가 3D 그래픽 부분을 직접 설명한다. • 사용빈도가 낮은 스피치, 오디오/비디오, 도큐먼트, 비트맵 효과 등도 다룬다. • 갤러리, 스크린팁, 사용자지정 컨트롤을 이용한 화면배치 등 오피스 2007에서 새롭게 소개되는 화면 UI를 실제 개발해본다. • 비주얼 스튜디오처럼 다소 복잡하지만 편리한 UI를 WPF의 컨트롤로 작성해 본다. • WPF로 구현 가능한 모든 프로그램의 형태를 살펴보고 이를 구조화 및 배포에 대한 모든 내용을 다룬다. 또한, 윈도우즈 비스타의 가젯처럼 특별한 UI를 사용하는 프로그램도 개발해본다. • WPF를 이용해서 유용한 사용자지정 컨트롤을 만들어 본다. • WPF와 Win32, 윈폼, 액티브X 등 기존의 기술들과 함께 이용하는 방법을 설명한다. • WPF를 이용해서 윈도우즈 비스타에 특화된 프로그램을 만들어 본다.
[이 책의 구성]
이
책은 WPF를 효과적으로 이용하기 위해서 알아야 할 내용들을 다섯 분야로 나누어 소개한다. 순서대로 보지 않고, 3D 그래픽이나
애니메이션처럼 관심 있는 주제를 보려고 책의 순서를 건너뛰어도 이해할 수 있도록 구성되었다. 다음은 각 장마다 제공되는 내용을
요약한 것이다. 1부: 배경지식 이 책은 WPF와 대안기술을 비교설명하고, 또한 언제 WPF를 사용할지 결정하는
능력을 키울 수 있게 돕는다. 2장은 여러분이 이 책이나 실제 프로그램을 작성할 때 볼 수 있는 XAML을 이해할 수 있도록
XAML의 기초적인 내용부터 심층적인 부분까지 다룬다. 3장은 닷넷 개발자들에겐 이미 익숙한 개념들과 차별화되는 WPF에서
새롭게 소개되는 개념들을 설명한다. ▶ 1장: 왜 WPF를 사용해야 하는가? ▶ 2장: XAML 신비를 벗다. ▶ 3장: WPF에서 새롭게 소개되는 중요한 개념들
2부: WPF 프로그램 만들기 2
부에서는 이전 프로그램들이 하는 것처럼 프로그램을 구조화하고 배포하는 방법을 배운다. 물론, 비정형
윈도우(non-rectangular window), 에어로글래스(Aeroglass), 형태변형(trans-formation)처럼
예전 프로그램에서 일반적으로 사용하지 않는 내용들도 다룬다. 4장에서는 기존의 컨트롤과 새롭게 추가된 컨트롤 이용하는 방법을
소개하고, 다음 두 장은 컨트롤을 이용해서 사용자 인터페이스(UI)를 구성하는 방법을 배운다. 7장은 이전 장에서 배운 내용들을
구조화해서 완벽한 프로그램을 만들고, 이를 배포하는 것을 다룬다. 2부의 내용들은 일반 프로그램과 웹 페이지처럼 브라우저에서
동작하는 프로그램 모두 다 동일하게 적용된다. ▶ 4장: WPF 컨트롤 소개 ▶ 5장: 엘리먼트의 크기 및 위치 조절과 형태변형 ▶ 6장: 패널을 이용한 화면배치 ▶ 7장: 프로그램 구조화와 배포
3부: 전문개발자를 위한 특징들 3
부에서 다루는 내용들은 프로그램을 만드는 데 항상 필요하지는 않지만, 강력한 프로그램을 제작할 수 있는 내용들로 채워져 있다.
그래서 안정적이고 오류가 없는 프로그램이나 컴포넌트 제작하고자 하는 전문개발자들에게는 반드시 필요한 내용들이다. ▶ 8장: 리소스 ▶ 9장: 데이터 바인딩 ▶ 10장: 스타일, 템플릿, 스킨, 테마
4부: 최신 리치미디어를 뛰어넘는 프로그램 만들기 4
부는 WPF의 특징 중 가장 주목받을 수 있는 내용들로 구성되어 있다. 2차원/3차원 그래픽, 애니메이션, 비디오 등 아주
매력적인 경험을 할 수 있다. 이러한 것들은 이전 시스템과 WPF를 구별 짓는 특징이다. WPF는 예전처럼 소프트웨어를 작성할
때 생기는 어려운 기술적 장벽을 낮추고, 여러분이 이전에 경험하지 못했던 프로그램을 작성할 수 있도록 돕는다. ▶ 11장: 2D 그래픽 ▶ 12장: 3D 그래픽 ▶ 13장: 애니메이션 ▶ 14장: 오디오, 비디오, 스피치, 도큐먼트
5부: 고급 주제 5부는 고급 개발자나 WPF의 컨트롤을 자신의 입맛에 맞게 수정하고 싶은 개발자를 위한 장이다. 스타일을 변경할 경우 많은 코딩과 복잡한 과정을 거쳐야 하기 때문에 사용자지정 컨트롤을 통하여 위의 과정을 줄일 수 있다. ▶ 15장: Win32, 윈폼, 액티브X, WPF의 상호운용성 ▶ 16장: 사용자정의 컨트롤과 사용자지정 컨트롤 ▶ 17장: 사용자지정 패널을 사용한 화면배치 |
 |
 |
 |
저자소개 |
[저자 소개]
애덤 네이선(Adam Nathan) 애
덤 네이선은 마이크로소프트 개발부의 선임개발연구원이다. 그는 호평을 받았던 『.NET and COM: The Complete
Interoperability Guide』(SAMS, 2002)의 저자이며, 『ASP.NET: Tips, Tutorials,
and Code』(SAMS, 2001)의 공동저자이다. 또한 『.NET Framework Standard Library
Annotated Reference, Vol. 2』(Addison-Wesley, 2005)와 『Windows Developer
Power Tools』 (O’Reilly, 2006)의 기여자이기도 하다. 애덤은 정기적으로 개발 컨퍼런스나 마이크로소프트
사내에서 닷넷 프레임워크(.NET Framework)와 관련한 다양한 주제로 강연을 한다. 애덤은 1999년 마이크로소프트
CLR (Common Language Runtime)팀에서 개발을 시작한 이후, 계속해서 닷넷 기술이 발전하는 데 핵심적인
역할을 수행해 왔다. 애덤은 PINVOKE.NET이나 비주얼스튜디오에 내장된 CLR SPY처럼 닷넷 개발자들에게 유용한
유틸리티를 만들어 배포하기도 하고, XAM-Lshare.com에서 XAML(eXtensible Application Markup
Language)에 관한 정보를 제공하기도 한다. 애덤의 웹 사이트(www.adamnathan.net)에서 그를 만나볼 수 있다.
[역자 소개]
한용희 webmondotnaver.com 경
희대학교 영어교육과를 졸업하고, 선배의 꼬임에 빠져 이 길을 걷게 된 후 개발 프리랜서로 활동하며 KT, 현대기아차, 국민은행,
SK 에너지 등에서 다수의 프로젝트를 수행하였다.‘보기 좋은 프로그램’이 무엇인지 고민하기를 좋아하며, 사용자 인터페이스 기술을
섭렵하는 데 많은 시간을 보내고 있다. |
 |
도서목차 |
저자 소개 ⅩⅣ 감사의 글 ⅩⅥ 이 책에 대하여 ⅩⅧ 감수자의 글 ⅩⅩⅤ 옮긴이의 글 ⅩⅩⅦ
part 1배경지식 Chapter 1 왜 WPF를 사용해야 하는가? 3 기술 발달과정을 되돌아보면 4 WPF를 본격적으로 시작하면서 6 닷넷 프레임워크의 중요한 한 축을 담당하다 11 매니지드 코드로 설계되다 12 선언형 프로그래밍을 사용하다 12 결론 13
Chapter 2 XAML 신비를 벗다 15 XAML의 정의 16 엘리먼트와 어트리뷰트 17 네임스페이스 19 프로퍼티 엘리먼트 21 타입 컨버터 22 마크업 확장식 24 오브젝트 엘리먼트의 자식요소들 27 컨텐트 프로퍼티 27 컬렉션 아이템 28 더 다양한 형변환 30 XAML과 프로그래밍 코드를 함께 컴파일하기 32 런타임 시에 XAML을 로드하고 파싱하기 32 XAML 컴파일하기 35 XAML의 키워드 40 결론 42 논쟁 1. XML은 데이터 타입을 너무 장황하게 표현한다 43 논쟁 2. XML 기반 시스템은 성능이 형편없다 44
Chapter 3 WPF에서 새롭게 소개되는 중요한 개념들 45 의존 프로퍼티 51 의존 프로퍼티의 구현 52 변경 통보 54 프로퍼티 값 상속 57 다중 프로바이더 지원 58 첨부 프로퍼티 61 라우티드 이벤트 66 라우티드 이벤트 구현 66 라우팅 전략과 이벤트 처리기 68 동작 중인 라우티드 이벤트 69 첨부 이벤트 73 명령어 76 내장 명령어 77 입력 행위로 명령어 실행하기 81 내장 명령어 바인딩을 가진 컨트롤들 81 클래스 계층구조 여행하기 83 결론 85
part 2 WPF 프로그램 만들기 Chapter 4 WPF에서 새롭게 소개되는 중요한 개념들 89 컨텐트 컨트롤 90 버튼 91 단순 컨테이너 96 헤더를 가진 컨테이너 100 아이템즈 컨트롤 102 셀렉터 105 메뉴 118 다른 아이템즈 컨트롤 122 범위 컨트롤 127 프로그레스바 127 슬라이더 128 텍스트 및 잉크 컨트롤 129 리치텍스트박스 130 패스워드박스 131 잉크캔버스 131 결론 134
Chapter 5 엘리먼트의 크기 및 위치 조정과 형태변형 135 크기 조절 136 높이와 폭 137 마진과 패딩 139 위치 조정 142 Visibility 141 정렬 142 컨텐트 정렬 143 플로우디렉션 144 형태변형 적용 145 형태변형의 조합 153 결론 154
Chapter 6 패널을 이용한 화면배치 155 캔버스 156 스택패널 159 랩패널 161 도크패널 164 그리드 166 행과 열의 크기 조절 171 GridSplitter를 이용해서 상호작용하는 크기 조절 173 행과 열 크기 공유하기 175 다른 패널들과 그리드의 비교 177 기초 패널들 178 탭패널 179 툴바오버플로패널 179 툴바트레이 179 유니폼그리드 179 컨텐트 오버플로 처리하기 180 클리핑 181 스크롤링 182 스케일링 185 종합예제: 비주얼스튜디오 스타일의 창을 만들어 보기 188 결론 198 표준 윈도우즈 응용 프로그램 199
Chapter 7 프로그램의 구조화와 배포 199 표준 윈도우즈 응용 프로그램 199 윈도우 클래스 200 애플리케이션 클래스 203 대화상자 만들기와 보여주기 210 프로그램 상태를 유지하고 복원하기 212 배포: 클릭원스 대 윈도우즈 인스톨러 214 탐색 기반 윈도우즈 응용 프로그램 215 페이지와 탐색 컨테이너 216 페이지 사이를 탐색하기 218 페이지 사이의 데이터 전달 224 윈도우즈 비스타의 룩앤필을 가진 응용 프로그램 227 메시지박스를 대신하는 태스크대화상자 228 에어로 글래스 사용하기 230 가젯 스타일의 응용 프로그램 234 XAML 브라우저 응용 프로그램 236 제한된 기능들 238 통합 탐색 240 배포 241 느슨한 XAML 페이지 243 결론 244
part 3 전문 개발자를 위한 특징들 Chapter 8 리소스 247 바이너리 리소스 247 바이너리 리소스 정의하기 248 바이너리 리소스에 접근하기 249 지역화 254 로지컬 리소스 256 리소스 룩업 259 스태틱 리소스 대 다이나믹 리소스 260 시스템 리소스와 상호작용 265 결론 266
Chapter 9 데이터 바인딩 267 바인딩 클래스 소개 268 프로그래밍 코드에서 바인딩 사용하기 268 XAML에서 바인딩 사용하기 270 단순 프로퍼티와 바인딩 272 객체 전체와 바인딩 273 컬렉션에 바인딩하기 275 데이터 컨텍스트를 이용해서 소스 공유하기 279 렌더링 조절하기 280 데이터 템플릿 사용하기 281 밸류 컨버터 사용하기 283 컬렉션 뷰의 커스터마이징 288 정렬 289 그룹핑 291 필터링 295 탐색 295 추가적인 뷰와 작업하기 297 데이터 프로바이더 299 XmlDataProvider 299 ObjectDataProvider 304 고급 주제 306 데이터 플로우 조절하기 306 바인딩에 검증 규칙 추가하기 309 흩어져 있는 소스와 작업하기 312 종합 예제: XAML으로만 만든 RSS 리더 314 결론 316
Chapter 10 스타일, 템플릿, 스킨, 테마 319 스타일 320 스타일 공유하기 322 트리거 328 템플릿 333 컨트롤 템플릿 소개하기 334 트리거를 이용한 상호작용 335 특정 타입만 제한해서 사용하기 338 템플릿에 사용된 부모 컨트롤의 프로퍼티 사용하기 338 화면에 표시되는 모든 상태를 고려하기 346 스타일을 함께 사용하는 템플릿 352 스킨 354 테마 361 시스템 설정 사용하기 361 테마의 종류마다 다른 스타일과 템플릿 362 결론 367
part 4 WPF 프로그램 만들기 Chapter 11 2D 그래픽 371 드로잉 373 지오메트리 375 펜 387 간단한 이미지 예제 389 비주얼 390 컨텐트로 드로잉비주얼 채우기 391 화면상에 비주얼 객체 보여주기 395 비주얼 충돌 테스트 398 셰이프 405 Rectangle 406 Ellipse 407 라인 408 폴리라인 409 폴리곤 409 패스 410 셰이프를 이용한 클립아트 411 브러시 412 컬러 브러시 413 타일 브러시 420 불투명 마스크를 가진 브러시 428 비트맵 효과 430 결론 434
Chapter 12 3D 그래픽 437 3D 그래픽 시작하기 438 카메라와 좌표 시스템 442 포지션 프로퍼티 443 룩디렉션 445 업디렉션 448 정사 방식 대 투시 방식 451 Transform3D 453 TranslateTransform3D 456 ScaleTransform3D 457 RotateTransform3D 459 다양한 Transform3D를 적용하기 462 모델3D 463 라이트 464 지오메트리모델3D 472 모델비주얼3D 488 비주얼3D 488 3D 충돌 테스트 490 뷰포트3D 엘리먼트 491 결론 494
Chapter 13 애니메이션 495 프로그래밍 코드를 사용한 애니메이션 496 ‘수작업’으로 애니메이션 실행하기 496 애니메이션 클래스 소개 497 애니메이션 기능 강화하기 504 XAML을 사용한 애니메이션 510 스토리보드를 포함하는 이벤트 트리거 510 스토리보드를 타임라인으로 사용하기 518 키프레임 애니메이션 519 리니어 키프레임 520 스플라인 키프레임 523 디스크리트 키프레임 524 결론 527 오디오 529
Chapter 14 오디오, 비디오, 스피치, 도큐먼트 529 비디오 534 미디어엘리먼트의 모양 조절하기 535 대상 미디어 조절하기 537 스피치 540 음성 합성 541 도큐먼트 548 플로우도큐먼트 만들기 549 플로우도큐먼트 보여주기 560 주석 추가하기 562 결론 566
PART 5 고급 주제 567 Chapter 15 Win32, 윈폼, 액티브X와 WPF의 상호운용성 569 WPF 프로그램에서 Win32 컨트롤 사용하기 571 Win32 웹캠 컨트롤 572 WPF에서 웹캠 컨트롤 사용하기 575 Win32 프로그램에서 WPF 컨트롤 사용하기 586 화면 변화를 바로 적용하기 590 WPF 프로그램에서 윈폼 컨트롤 사용하기 594 프로그래밍 코드에 프로퍼티그리드 포함시키기 594 윈폼 프로그램에서 WPF 컨트롤 사용하기 598 WPF 프로그램에서 액티브X 사용하기 603 결론 607
Chapter 16 사용자정의 컨트롤과 사용자지정 컨트롤 609 사용자정의 컨트롤 만들기 611 사용자 인터페이스 만들기 611 처리 로직 만들기 613 의존 프로퍼티 추가하기 617 라우티드 이벤트 추가하기 620 사용자지정 컨트롤 만들기 621 처리 로직 만들기 621 더 좋은 컨트롤을 만들기 위해서 고려할 사항들 632 결론 636
Chapter 17 사용자지정 패널을 사용한 화면배치 637 부모와 자식 엘리먼트 사이의 통신 638 측정 단계 638 배열 단계 640 오피스 2007과 같은 리본패널 만들기 642 리본패널 처리 로직 643 리본패널 구현 643 결론 648
Appendix 유용한 도구들 전문 개발 프로그램 649 무료 유틸리티 650 전문적인 디자인 프로그램 652 닷넷 프레임워크 3.5와 WPF 653 비주얼스튜디오 2008의 WPF 개발환경 654 닷넷 프레임워크의 다중 지원 654 WPF 통합환경 설명 654 기타 656 WPF 3.5의 새로운 기능 657 새로운 네임스페이스 추가 및 버전 호환성 657 Firefox에서 XBAP 실행 가능 660 3D 그래픽 지원 강화 661
InDEX 인덱스 663 |
 |
 |
 |
저자소개 |
[저자 소개]
애덤 네이선(Adam Nathan) 애
덤 네이선은 마이크로소프트 개발부의 선임개발연구원이다. 그는 호평을 받았던 『.NET and COM: The Complete
Interoperability Guide』(SAMS, 2002)의 저자이며, 『ASP.NET: Tips, Tutorials,
and Code』(SAMS, 2001)의 공동저자이다. 또한 『.NET Framework Standard Library
Annotated Reference, Vol. 2』(Addison-Wesley, 2005)와 『Windows Developer
Power Tools』 (O’Reilly, 2006)의 기여자이기도 하다. 애덤은 정기적으로 개발 컨퍼런스나 마이크로소프트
사내에서 닷넷 프레임워크(.NET Framework)와 관련한 다양한 주제로 강연을 한다. 애덤은 1999년 마이크로소프트
CLR (Common Language Runtime)팀에서 개발을 시작한 이후, 계속해서 닷넷 기술이 발전하는 데 핵심적인
역할을 수행해 왔다. 애덤은 PINVOKE.NET이나 비주얼스튜디오에 내장된 CLR SPY처럼 닷넷 개발자들에게 유용한
유틸리티를 만들어 배포하기도 하고, XAM-Lshare.com에서 XAML(eXtensible Application Markup
Language)에 관한 정보를 제공하기도 한다. 애덤의 웹 사이트(www.adamnathan.net)에서 그를 만나볼 수 있다.
[역자 소개]
한용희 webmondotnaver.com 경
희대학교 영어교육과를 졸업하고, 선배의 꼬임에 빠져 이 길을 걷게 된 후 개발 프리랜서로 활동하며 KT, 현대기아차, 국민은행,
SK 에너지 등에서 다수의 프로젝트를 수행하였다.‘보기 좋은 프로그램’이 무엇인지 고민하기를 좋아하며, 사용자 인터페이스 기술을
섭렵하는 데 많은 시간을 보내고 있다. |
| |