퇴근5분전

패널 형식
StackPanel   : 수직 또는 수평으로 컨트롤을 적제하여 배치함.
DockPanel    : 다섯개의 고정된 위치에 컨트롤을 배치 함.
Grid             : 열과 행을 임의로 정의하여 각 열과 행에 해당컨트롤을 배치함.
Canvas        :  원하는 임의의 위치의 좌표값을 이용하여 컨트롤을 배치함.

*Window : 자식 컨트롤은 어떤것이든 하나의 컨트롤만이 등록될수 있다는 제약조건이 존재함.
             기존의 Form과 다른 점이다.


이에 레이아웃 컨트롤을 적절하게 사용하여 UI를 구성하여야 한다.

- StackPanel  :: 기본 세로정렬
 <StackPanel Orientation="Horizontal"> :: 가로정렬

- DockPanel
 DockPanel.Dock속성을 이용하여 Top, Buttom, Left, Right 위치에 자식컨트롤을 배치 시킴.
ex)
 <DockPanel >
       <Button DockPanel.Dock="Top" />   패널 내에서 상위에 버튼을 위치시킴.
 </DockPanel>
 ** Center라는 속성이 없으며 DockPanel.Dock를 지정하지 않으면 가운데 위치함.
 ** 등록되는 순서에 따라 자식컨트롤위치 및 레이아웃이 변경이 일어남( 기존 Form작업과 같음... )
 
- Grid :: Window 기본 자식요소로 지정되있는 컨트롤임.
  Row설정
  <Grid.RowDefinition>
            <RowDefinition />
            <RowDefinition />
            <RowDefinition />
            ... 필요한 행수만큼...
  </Grid.RowDefinition>
  Column 설정
  <Grid.ColumnDefinition>
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
            ... 필요한 열수만큼...
  </Grid.ColumnDefinition>
  컨트롤 배치
  <Button Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Grid.RowSpan="2" />
RowSpan과 ColumnSpan 으로 버튼이 그리드내에서 차지할수 있는 영역을 지정할수 있음
HTML테이블처럼...사용할수 있음.

 그리드 간에 크기 공유 방법.
 그리드들의 부모 컨트롤에 속성으로 Grid.IsSharedSizeScope="True" 지정 후
 그리드들의 컬럼들이 크기를 공유할수있도록 그룹을 지정해줌.
  <ColumnDefinition SharedSizeGroup="GroupA" /> 으로 그룹을 지정해줌.

- Canvas :: 컨트롤의 좌측상단의 위치값을 결정후 폭과 높이에 따라 출력시킴.
 <Canvas >
      <Button Canvas.Left="20" Canvas.Top="10" />
      <Button Canvas.Bottom="20" Canvas.Right="10" />
 </Canvas>
 컨트롤의 위치좌표값이 아닌 캔버스 기준으로 컨트롤의 위치를 계산함.
   ex)  Canvas.Left="20" : 캔버스의 Left에서 20만큼 떨어진 위치

- WrapPanel :: ToolBar 아이콘 정렬 되듯이 정렬되는 레이아웃 컨트롤
- UniformGrid :: 각 셀크기가 동일한 Grid 레이아웃.
   <UniFormGrid Columns="2"  Rows="3" /> 2*3 그리드가 나타남.

- ViewBox :: WPF 기본 레이아웃은 아님 ** 하나의 자식컨트롤만 가질수 있음
  자식컨트롤을 자신의 크기만큼 확대해서 보여줌. - 어따 쓰는물건인고?


- 출처 : .Net 3.5 차세대 개발 프로그래밍 -  책에서 일부 정리 함. ( 저작권 문제시 삭제 할 것임. )
          자세한 내용은 책을 통해 확인하시길...

'# 3) .Net ( Vs 2008 ) > WPF' 카테고리의 다른 글

스타일  (0) 2009.12.26
리소스  (0) 2009.12.26
유저컨트롤사용!  (0) 2009.12.26
WPF 응용프로그램 기초  (0) 2009.12.26
WPF 기초...  (0) 2009.12.26