절대 레이아웃 
 레이아웃 은 Windows Phone 용 앱 에서 개체 의 크기 및 위치 를 지정 하 는 프로세스 입니다 . 표시 개체 를 배치 하 려면 Panel 또는 다른 컨테이너 개체 에서 파생 된 컨테이너 컨트롤 에 배치 해야 합니다 . Windows Phone 에서 는 컨테이너 로 사용 되 고 컨트롤 을 배치 및 정렬 할 수 있 는 다양 한 Panel 컨트롤 을 제공 합니다 ( 예 : Canvas , StackPanel 및 Grid ) . 
 Windows Phone 레이아웃 시스템 은 절대 레이아웃 및 동적 레이아웃 을 둘 다 지원 합니다 . 절대 레이아웃 에서 컨트롤 은 명시 적 x / y 좌표 를 사용 하 여 배치 됩니다 ( 예 : Canvas 사용 ) . 동적 레이아웃 에서 사용 자 인터페이스 는 다양 한 화면 해상도 에 맞 게 자동 으로 크기 가 조정 됩니다 ( 예 : StackPanel 또는 Grid 사용 ) . 
 절대 레이아웃 에서 는 부모 요소 를 기준 으로 한 정확 한 위치 를 지정 하 여 레이아웃 패널 에서 자식 요소 를 정렬 합니다 . 절대 위치 에서 는 화면 크기 를 고려 하 지 않 습니다 . 앱 에서 UI 요소 를 절대 위치 로 지정 해야 하 는 경우 화면 해상도 에 따라 다른 페이지 를 디자인 하 거나 배율 조정 을 사용 할 수 있 습니다 . 
 Windows Phone 에서 는 절대 위치 를 지원 하 기 위해 Canvas 컨트롤 을 제공 합니다 . 기본 적 으로 새 Windows Phone 앱 프로젝트 를 만들 경우 루트 레이아웃 패널 은 절대 위치 에 따라 레이아웃 을 만드 는 Grid 입니다 . Grid 를 Canvas 로 바꿔야 합니다 . 
 컨트롤 을 Canvas 에 배치 하 려면 컨트롤 에서 다음 연결 된 속성 을 설정 해야 합니다 . Visual Studio 에서 디자이너 를 사용 할 경우 컨트롤 을 디자인 화면 으로 끌 때 이러 한 속성 이 업데이트 됩니다 . 
 동적 레이아웃 에서 는 사용 자 인터페이스 가 다양 한 화면 해상도 에서 올바르 게 나타납니다 . 자식 요소 의 정렬 방식 과 부모 요소 를 기준 으로 한 줄 바꿈 방식 을 지정 하 여 자식 요소 를 정렬 합니다 . 예 를 들 어 패널 에 컨트롤 을 정렬 하 고 컨트롤 이 가로 로 줄 바 꿈 되 도록 지정 할 수 있 습니다 . 자동 또는 비례 크기 조정 을 사용 하 려면 Height 및 Width 속성 에 특수 값 을 할당 해야 합니다 . 다음 은 동적 레이아웃 에 대한 권장 설정 입니다 . 
 컨트롤 또는 레이아웃 의 높이 와 너비 를 Auto 로 설정 합니다 . 이러 한 값 이 Grid 레이아웃 의 컨트롤 에 사용 되 면 포함 된 컨트롤 이 셀 을 채 웁 니다 . 자동 크기 조정 은 컨트롤 과 Grid 및 StackPanel 레이아웃 에 대해 지원 됩니다 . 
 텍스트 가 포함 된 컨트롤 의 경우 Height 및 Width 속성 을 제거 하 고 MinWidth 또는 MinHeight 속성 을 설정 합니다 . 그러면 텍스트 배 율 이 읽 을 수 없 는 크기 로 감소 하 지 않 습니다 . 
 Grid 레이아웃 에서 RowDefinition 및 ColumnDefinition 의 비례 값 을 설정 하 려면 상대 Height 및 너비 값 을 사용 합니다 . 예 를 들 어 한 열 이 다른 열 보다 5 배 넓 도록 지정 하 려면 ColumnDefinition 요소 에서 Width 성 에 대해 "*" 및 " 5 *" 를 사용 합니다 . 
 자동 및 별표 를 사용 한 크기 조정 
 Auto 크기 조정 은 내용 의 크기 가 변경 되 더라도 해당 내용 에 맞 게 컨트롤 크기 를 조정 하 는 데 사용 합니다 . Star 크기 조정 은 모눈 의 행 및 열 에 사용 가능 한 공간 을 가중치 에 따라 배분 하 는 데 사용 합니다 . XAML 에서 별표 값 은 *( 또는 n *) 로 표현 합니다 . 예 를 들 어 그리드 에 4 개 의 열 이 있 는 경우 열 너비 를 다음 표 에 나와 있 는 값 으로 설정 할 수 있 습니다 . 
 열 의 크기 가 내용 에 맞 게 지정 됩니다 . 
 Auto 열 이 계산 된 후 남 은 너비 의 일부 를 사용 합니다 . 열 2 의 너비 는 열 4 의 절반 너비 가 됩니다 . 
 Auto 열 이 계산 된 후 남 은 너비 의 일부 를 사용 합니다 . 열 4 의 너비 는 열 2 의 두 배 너비 가 됩니다 . 
 자동 및 별표 크기 조정 에 대한 자세 한 내용 은 GridUnitType 열거 를 참조 하 세요 . 
 Windows Phone 의 기본 제공 레이아웃 패널 은 Canvas , StackPanel 및 Grid 입니다 . 
 Canvas 에서 Canvas 영역 에 상대 적 인 좌표 를 사용 하 여 자식 요소 를 명시 적 으로 배치 할 수 있 는 영역 을 정의 합니다 . Canvas 는 포함 된 UI 요소 가 이동 되 지 않 는 시나리오 에 유용 합니다 . 
 X , Y 좌표 를 지정 하 여 Canvas 내부 에 컨트롤 을 배치 할 수 있 습니다 . X 및 Y 좌표 는 Canvas . Left 및 Canvas . Top 연결 속성 을 사용 하 여 지정 됩니다 . Canvas . Left 는 포함 하 는 Canvas 왼쪽 에서 의 개체 거리 ( X 좌표 ) 를 지정 하 고 , Canvas . Top 은 포함 하 는 Canvas 위쪽 에서 의 개체 거리 ( Y 좌표 ) 를 지정 합니다 . 
 다음 XAML 에서 는 Canvas 왼쪽 에서 30 픽셀 , 위쪽 에서 200 픽셀 떨어진 위치 에 사각형 을 배치 하 는 방법 을 보여 줍니다 . 
 다음 그림 에서 는 LayoutRoot 에서 StackPanel 뒤 에 이름 이 TitlePanel 인 이전 XAML 을 추가 하 는 경우 출력 을 보여 줍니다 . 
 StackPanel 은 가로 또는 세로 방향 으로 지정 할 수 있 는 한 줄 에 자식 요소 를 정렬 하 는 단순 레이아웃 패널 입니다 . Orientation 속성 을 사용 하 여 하위 요소 의 방향 을 지정 할 수 있 습니다 . Orientation 속성 의 기본 값 은 Vertical 입니다 . 일반 적 으로 StackPanel 은 페이지 에서 UI 의 작 은 하위 섹션 을 정렬 하 려는 시나리오 에 사용 됩니다 . 
 다음 XAML 에서 는 항목 의 세로 StackPanel 을 만드 는 방법 을 보여 줍니다 . 
 이전 XAML 은 다음 Windows Phone 그림 과 비슷 한 출력 을 생성 합니다 . 
 Grid 컨트롤 은 가장 유연 한 레이아웃 패널 이 며 컨트롤 을 여러 행 및 여러 열 레이아웃 으로 정렬 하 는 방법 을 지원 합니다 . Grid 컨트롤 바로 안쪽 에 선언 되 는 RowDefinitions 및 ColumnDefinitions 속성 을 사용 하 여 Grid 의 행 및 열 정의 를 지정 할 수 있 습니다 . Column 및 Row 연결 된 속성 을 사용 하 여 Grid 의 특정 셀 에 개체 를 배치 할 수 있 습니다 . 자동 또는 별표 크기 조정 을 사용 하 여 열 또는 행 내 에서 공간 을 분배 할 수 있 습니다 . 자동 및 별표 크기 조정 은 이 빠른 시작 의 앞부분 에서 설명 했 습니다 . RowSpan 및 ColumnSpan 연결 속성 을 사용 하 여 콘텐츠 를 여러 행과 열 에 표시 할 수 있 습니다 . 
 Grid 의 자식 요소 는 태그 또는 코드 에서 나타나 는 순서 대로 그려집니다 . 따라서 여러 요소 가 같 은 좌표 를 공유 할 때 계층 화 된 순서 ( Z 순서 ) 를 구현 할 수 있 습니다 . Z 순서 에 대한 자세 한 내용 은 ZIndex 을 참조 하 세요 . 
 다음 XAML 은 행 3 개 및 열 2 개 가 있 는 Grid 를 만드 는 방법 을 보여 줍니다 . 첫 번 째 및 세 번 째 행의 높이 는 텍스트 를 포함 할 만큼 충분히 큽니다 . 두 번 째 행의 높이 는 사용 가능 한 나머지 높이 까지 채 웁 니다 . 열 너비 는 사용 가능 한 컨테이너 너비 내 에서 똑같이 분할 됩니다 . 
 이전 XAML 은 다음 그림 과 비슷 한 출력 을 생성 합니다 . 
 Canvas , StackPanel 또는 Grid 만 으로 는 구현 하 기 가 쉽 지 않 은 복잡 한 레이아웃 을 만들 때 는 패널 의 자식 요소 에 대한 레이아웃 동작 을 정의 할 수 있 는 사용자 지정 패널 을 만들 수 있 습니다 . 이렇게 하 려면 Panel 에서 파생 시킨 뒤 해당 MeasureOverride 및 ArrangeOverride 메 서 드 를 재정 의 합니다 .