슬라이드 1
슬라이드 2
슬라이드 3
- 레이아웃이라는 용어는 Panel요소의 Children컬렉션에 속한 멤버를 측정 및 정렬한 다음 화면에 그리는 프로세스를 말한다.
- WPF는 언어가 바뀌거나 콘텐츠들이 바뀌거나 윈도우 사이즈가 변하더라도 유연한 레이아웃을 적용할 수 있도록 중점을 두었다.
- 고정위치모델 : 절대 좌표를 이용하여 컨트롤들 위치
- 동적위치모델 : 윈도우의 크기가 변해도 자동적으로 레이아웃과 컨트롤의 크기와 위치가 변경
- WPF를 사용하는 개발자는 레이아웃 패널을 통해서 위치와 그에 포함된 컨트롤들의 크기를 변경한다.
슬라이드 4
- 패널이란 자신이 소유한 요소들을 정렬하는 일을 수행하는 목적을 가진 사용자 인터페이스로서 크기 및 차원, 위치, 자식 콘텐츠 정렬 등과 같은 요소 렌더링을 제어하는 구성 요소이다.
- 패널은 WPF에서 레이아웃 지원을 제공하는 모든 요소에 대한 기본 클래스입니다. (Canvas, StackPanel, WrapPanel, DockPanel, Grid는 Panel클래스로 파생을 받는다.)
슬라이드 5

- 캔버스는 모든 패널 중에서 가장 유연한 레이아웃을 제공한다.
- 캔버스는 명시적인 좌표값을 이용해서 엘리먼트의 위치를 결정하는 ‘고전적인’ 개념만 지원한다.
- 캔버스는 흔히 생각하듯 좌측 상단 코너에만 고정되지 않고 사방을 자신의 좌표값으로 사용할 수 있다.
- 요소를 고유 위치에 그릴 수 있지만 여러 요소가 동일한 좌표를 사용하는 경우에는 해당 요소는 태그에 나타나는 순서대로 요소가 그려진다.
- 주의 사항으로는 엘리먼트는 캔버스 첨부 프로퍼티를 두 개 이상 사용할 수 없다. 그 이유는 Canvas.left와 canvas.right를 동시에 사용할 경우 canvas.right는 무시되고, canvas.top과 canvas.bottom도 동시에 사용되면 canvas.bottom은 무시된다. 그래서 한 번에 두 코너에 동시에 도킹할 수 없다.
슬라이드 6
- 스택패널은 이용하기에 간편하고 유용한 패널이다.
- 이름이 말해 주듯이, 이 패널은 자식 엘리먼트들이 추가되는 순서대로(먼저 추가되는 것이 가장 아래로) 누적된다.
- 스택패널은 자신만의 첨부 프로퍼티를 정의하지 않은 몇 안되는 패널 중 하나이다.(사용자가 원하는대로 순차적으로 배치) 스택패널은 열 또는 행으로 구성된 레이아웃에 컨트롤 배치를 가능하게 하는 간단한 레이아웃 패널입니다.
- 자식 엘리먼트를 배열하는 데 사용하는 첨부 프로퍼티는 없으며, 오직 오리엔테이션 프로터리를 사용해서 조정한다.
- 이 프로퍼티는 system.windows.controls,orientation타입이고 Horizontal이나 vertical중 하나를 설정할 수 있고, 기본값은 vertical이다.
슬라이드 7
- 자식 엘리먼트를 스택패널처럼 그냥 포함하는 것이 아니라, 추가되는 엘리먼트마다 충분한 공간이 없을 때는 누적되는 방향으로 행이나 열을 바꿔서 배치한다.
슬라이드 9
- LastChildFill의 기본 값이 true로 설정되면 마지막으로 추가되는 자식 엘리먼트의 Dock프로퍼티는 무시되고, 반대로 false로 설정되면 값이 명시적으로 설정되지 않는 한 기본적으로 left가 적용되어 도킹된다.
슬라이드 10

- Grid 그리드는 자주 사용되는 패널이면서 비주얼스튜디오나 익스프레션 블렌드같은 프로그램에서는 기본적으로 그리드를 기본 패널로 사용된다.
- Grid그리드는 절대 위치 지정 컨트롤과 표 형식 데이터 컨트롤의 기능을 병합한다.
- Grid를 사용하면 요소의 위치와 스타일을 쉽게 지정할 수 있다.
- Grid 유연한 행 및 열 그룹화를 정의할 수 있도록 한다.
- 여러 Grid 요소 간에 크기 조정 정보를 공유할 수 있는 메커니즘도 제공한다.
슬라이드 11
WPF Panel.pptx