통합검색
· 마을서비스란?  · 포럼마을  · 일반마을  · 테마마을  · 마을랭킹  · 활동왕
· 덱스퍼트란?  · TECBOX   · PRSBOX   · 이용안내  
· DEXT제품군  · 솔루션베이  · S/W & ESD 컴포넌트
· 프로그램베이
· LiveSeminar  · LiveConference
WPF & Silverlight 포럼마을입니다.
  마을등급 WPF & Silverlight   이 마을은 포럼마을 입니다이 마을은 자유가입제 마을 입니다 마을소개 페이지로 이동 전입신청
마을촌장촌장 서학수 주민 728 since 2008-07-17
우리마을 공지사항
질문&답변
강좌&팁
자유게시판
자료실
앨범
[마을 게시판]
WPF 강좌
랑데브 게시판
칼럼 게시판
개발자 고충상담
Dev Talk
자유토론방
벼룩시장
재나미 우스개
구인/프로젝트 정보
사람인 채용 게시판
  고객지원 게시판
마이 데브피아
 나의 e-Money 내역
 활동왕 My Page
 스크랩한 게시글보기
 쪽지관리
 주소록관리

 WPF 강좌
 WPF Layout Control #1 ?Canvas, DockPanel, Grid 2008-07-16 오전 9:51:57
 kdw234  kdw234님께 메시지 보내기kdw234님을 내 주소록에 추가합니다.kdw234님의 개인게시판 가기 번호: 37267  / 읽음:5,646

안녕하세요, 오랜만의 WPF관련 포스팅입니다.
요즘 프로젝트 하느라 바쁘다는 핑계로 자꾸 포스팅을 미룬 것 같네요 죄송합니다. ㅠ_ㅠ

이번 시간에는 WPF에서 사용할 수 있는 Layout Control에 대해서 살펴보도록 하겠습니다.

WPF에서는 위와 같이 총 5가지의 기본적인 Layout Control을 제공합니다. (이외에 변형된 다른 Layout Control또한 제공합니다.) Layout Control이란 개발자가 UI를 개발할 때 Control의 배치를 쉽게 할 수 있도록 돕는 Control이라 할 수 있습니다. 그럼 지금부터 Layout Control에 대해 하나하나 살펴보도록 하겠습니다.

가장먼저 Canvas 입니다. Canvas는 지금까지 우리가 가장 많이 사용해왔던 방식중의 하나로 절대 좌표를 사용한 Layout 방식이라 할 수 있습니다. Left Property를 사용해 X좌표를 정의 하고, Top Property를 사용해 Y좌표를 정의 합니다. WPF에서는 객체의 ZOrder는 Stack와 같은 구조로 되어 있습니다. 가장먼저 선언한 객체가 맨 아래에 위치하고 가장 마지막에 선언한 객체가 맨 위에 위치하게 됩니다. 간단하게 위 예제 코드를 살펴보면, Canvas객체 안에 3개의 Canvas가 생성된걸 확인 할 수 있습니다. 빨강색 Canvas와 녹색 Canvas가 먼저 선언되었기 때문에 파란색 Canvas가 가장 위에 출력되는 것을 확인 할 수 있습니다.

Canvas는 절대 좌표를 사용하여 쉽게 Control의 위치를 정의 할 수 있다는 장점이 있지만, 부모 객체의 크기 변화에 따른 추가적인 동작이 이루어지지 않기 때문에, 사용에 유의 하셔야 합니다.

DockPanel은 객체의 Dock속성을 사용하여 객체가 위치해 할 방향만으로 객체를 배치하는 방법입니다. DockPanel에서 Top,Left,Right,Bottom,Fill 이렇게 총 5가지의 방향을 제공하며, 현재 DockPanel에서 사용가능한 영역을 기준으로 위치가 정해집니다. 예제 코드를 보면서 설명해드리겠습니다.

먼저 첫번째 Border의 Dock속성이 Top으로 설정된 것을 확인 할 수 있습니다. 그럼 아무것도 없던 빈 DockPanel에 위쪽 25Pixel만큼의 크기를 차지하도록 배치합니다. 그 다음 두 번째 Border는 똑같이 Top이지만, 첫 번째 영역이 사용한 위쪽 25Pixel을 제외한 나머지 부분의 위쪽 25Pixel을 차지합니다. 이와 같은 형식으로 순차적으로 사용할 방향을 지정함으로서 Layout을 구성할 수 있습니다.

가장 마지막에 있는 Border는 특별히 Dock속성을 지정해주지 않았는데, 지정하지 않을 경우 해당 컨트롤의 기본적인 크기로 사용 가능한 위치에 배치가 됩니다. 만약 가장 마지막에 추가될 아이템을 남은 공간을 모두 차지 하게 하고 싶다면, DockPanel의 LastChildFill속성을 True로 설정하시면 사용이 가능합니다. DockPanel에 추가된 객체는 DockPanel의 크기가 변경되면 이에 맞게 UI를 자동으로 다시 배치 함으로 편리합니다.


 

Grid는 WPF서 가장 일반적으로 사용되는 Layout방식으로 Column과 Row를 나누고 Column과 Row번호를 사용해 객체의 위치를 지정 할 수 있습니다. 만약 한 개 이상의 Column이나 Row를 사용하고자 할 경우, ColumnSpan속성이나 RowSpan속성을 사용하여 Column과 Row를 병합하여 사용할 수 도 있습니다. ColumnDefinition와 RowDefinition를 사용하여 Grid를 나눌 수 있으며 Star, Auto, Absolute방식으로 크기를 지정할 수 있습니다.

김대욱(kdw234@naver.com) http://wpfkorea.tistory.com

코멘트쓰기
  좋음   놀람   궁금   화남   슬픔   최고   침묵   시무룩   부끄럼   난감
* 코멘트는 500자 이내(띄어쓰기 포함)로 적어주세요.
목록 보기   지금 보고 계시는 글을 회원님의 my Mblog >> 스크랩에 넣어두고 다음에 바로 보실 수 있습니다.  
회사소개  |   개인정보취급방침  |  제휴문의  |   광고문의  |   E-Mail 무단수집거부  |   고객지원  |   이용안내  |   세금계산서
사업자등록번호 안내: 220-81-90008 / 통신판매업신고번호 제 2017-서울구로-0055호 / 대표: 홍영준, 서민호
08390, 서울시 구로구 디지털로32길 30, 1211호 / TEL. 02_6719_6200 / FAX. 02-6499-1910
Copyright ⓒ (주) 데브피아. All rights reserved.