XAML을 사용하여 Grid 및 StackPanel 요소를 사용하여 간단한 날씨 앱에 대한 레이아웃을 만듭니다. 이러한 도구를 사용하면 Windows를 실행하는 모든 디바이스에서 작동하는 멋진 앱을 만들 수 있습니다. 이 자습서는 10~20분이 걸립니다.
중요 API: Grid 클래스, StackPanel 클래스
필수 조건
- Windows 10 및 Microsoft Visual Studio 2015 이상. 최신의 Visual Studio(최신 개발 및 보안 업데이트를 위해 권장됨) Windows 앱 SDK의 도구를 설치합니다.
- XAML 및 C#을 사용하여 기본 "Hello World" 앱을 만드는 방법에 대한 지식 아직 없는 경우 여기를 클릭하여 "Hello World" 앱을 만드는 방법을 알아보세요.
1단계: 빈 앱 만들기
- Visual Studio 메뉴에서 새 프로젝트 파일을> 선택합니다.
- 새 프로젝트 대화 상자의 왼쪽 창에서 Visual C#>Windows>유니버설 또는 Visual C++>Windows>유니버설을 선택합니다.
- 가운데 창에서 빈 앱을 선택합니다.
- 이름 상자에 WeatherPanel을 입력하고 확인을 선택합니다.
- 프로그램을 실행하려면 메뉴에서 디버그>시작 디버깅을 선택하거나 F5 키를 선택합니다.
2단계: 그리드 정의
XAML에서 그리드 는 일련의 행과 열로 구성됩니다. Grid 내에서 요소의 행과 열을 지정하면 사용자 인터페이스 내에서 다른 요소를 배치하고 공백을 지정할 수 있습니다. 행 및 열은 RowDefinition 및 ColumnDefinition 요소로 정의됩니다.
레이아웃 만들기를 시작하려면 솔루션 탐색기를 사용하여 MainPage.xaml을 열고 자동으로 생성된 Grid 요소를 이 코드로 바꿉니다.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="5*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
</Grid>
새 Grid 는 앱 인터페이스의 레이아웃을 정의하는 두 개의 행과 열 집합을 만듭니다. 첫 번째 열의 너비는 "3*"이고, 두 번째 열은 "5*"입니다. 이렇게 가로 공간을 두 열 사이에서 3:5 비율로 나눕니다. 동일한 방식으로 두 행의 Height 각각 "2*" 및 "*"이므로 Grid 두 번째 행에 대해 두 번째 행에 대해 두 배의 공간을 할당합니다("*"는 "1*"과 동일). 이러한 비율은 창 크기가 조정되거나 디바이스가 변경된 경우에도 유지됩니다.
행 및 열 크기를 조정하는 다른 방법에 대한 자세한 내용은 XAML을 사용하여 레이아웃 정의를 참조하세요.
이제 애플리케이션을 실행하면 그리드 영역에 콘텐츠가 없기 때문에 빈 페이지 외에는 아무것도 표시되지 않습니다. 그리드를 표시하려면 색을 지정해 보겠습니다.
3단계: 눈금 색 지정
Grid의 색을 지정하기 위해, 각각 다른 배경색을 가진 세 개의 테두리 요소를 추가합니다. 또한 각각은 Grid.Row 및 Grid.Column 특성을 사용하여 부모 Grid의 행과 열에 할당됩니다. 이러한 특성의 값은 기본값이 0이므로 첫 번째 테두리에 할당할 필요가 없습니다. 행 및 열 정의 다음에 다음 코드를 Grid 요소에 추가합니다.
<Border Background="#2f5cb6"/>
<Border Grid.Column ="1" Background="#1f3d7a"/>
<Border Grid.Row="1" Grid.ColumnSpan="2" Background="#152951"/>
우리는 세 번째 Border 경우 추가 특성인 Grid.ColumnSpan을 사용합니다. 이로 인해 이 테두리 가 아래쪽 행의 두 열에 걸치게 됩니다. Grid.RowSpan을 동일한 방식으로 사용할 수 있으며 이러한 특성을 함께 사용하면 여러 행과 열에 걸쳐 요소를 확장할 수 있습니다. 이러한 범위의 좌상단 모서리는 항상 요소의 속성에 지정된 Grid.Column 및 Grid.Row입니다.
앱을 실행하는 경우 결과는 다음과 같습니다.
4단계: StackPanel 요소를 사용하여 콘텐츠 구성
StackPanel 은 날씨 앱을 만드는 데 사용할 두 번째 UI 요소입니다. StackPanel은 여러 기본 앱 레이아웃의 기본 부분으로, 요소를 세로 또는 가로로 쌓을 수 있습니다.
다음 코드에서는 StackPanel 요소 두
<StackPanel Grid.Column="1" Margin="40,0,0,0" VerticalAlignment="Center">
<TextBlock Foreground="White" FontSize="25" Text="Today - 64° F"/>
<TextBlock Foreground="White" FontSize="25" Text="Partially Cloudy"/>
<TextBlock Foreground="White" FontSize="25" Text="Precipitation: 25%"/>
</StackPanel>
<StackPanel Grid.Row="1" Grid.ColumnSpan="2" Orientation="Horizontal"
HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Foreground="White" FontSize="25" Text="High: 66°" Margin="0,0,20,0"/>
<TextBlock Foreground="White" FontSize="25" Text="Low: 43°" Margin="0,0,20,0"/>
<TextBlock Foreground="White" FontSize="25" Text="Feels like: 63°"/>
</StackPanel>
첫 번째 Stackpanel에는 각 TextBlock이/가 다음 것 아래로 세로로 쌓입니다. 이는 StackPanel의 기본 동작이므로 Orientation 특성을 설정할 필요가 없습니다. 두 번째 StackPanel에서는 자식 요소가 왼쪽에서 오른쪽으로 가로로 정렬되도록 Orientation 특성을 "Horizontal"로 설정합니다. 또한 텍스트가 아래쪽 테두리를 중심으로 되도록 Grid.ColumnSpan 특성을 "2"로 설정해야 합니다.
지금 앱을 실행하면 다음과 같이 표시됩니다.
5단계: 이미지 아이콘 추가
마지막으로 그리드 의 빈 섹션을 오늘의 날씨를 나타내는 이미지("부분적으로 흐림")로 채우겠습니다.
아래 이미지를 다운로드하여 "partially-cloudy"라는 PNG로 저장합니다.
솔루션 탐색기에서 자산 폴더를 마우스 오른쪽 버튼으로 클릭하고 추가 ->기존 항목...을 선택합니다. 나타나는 브라우저에서 partially-cloudy.png을 찾아 선택한 다음 추가를 클릭합니다.
다음으로 MainPage.xaml에서 4단계의 StackPanels 아래에 다음 Image 요소를 추가합니다.
<Image Margin="20" Source="Assets/partially-cloudy.png"/>
첫 번째 행과 열에서 이미지를 원하기 때문에 Grid.Row 또는 Grid.Column 특성을 설정할 필요가 없으므로 기본값을 "0"으로 설정할 수 있습니다.
정말 간단하죠! 간단한 날씨 애플리케이션에 대한 레이아웃을 성공적으로 만들었습니다. F5 키를 눌러 애플리케이션을 실행하는 경우 다음과 같이 표시됩니다.
원하는 경우 위의 레이아웃을 실험하고 날씨 데이터를 나타낼 수 있는 다양한 방법을 탐색해 보세요.
관련 문서
- Windows 앱 레이아웃 디자인에 대한 소개는 Windows 앱 실루엣을 참조하세요.
- 다양한 화면 크기에 맞게 반응형 레이아웃을 만드는 방법에 대한 자세한 내용은 XAML을 사용하여 페이지 레이아웃 정의를 참조하세요.
Windows developer