레이아웃 컨트롤
패널 형식
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 |