TOC

This article has been localized into Korean by the community.

WPF application:

Window

WPF 응용프로그램을 제작할 때 가장 먼저 보이는 것은 Window 클래스입니다. 이는 윈도우의 뼈대로 기본적인 경계선, 타이틀 바, 최대화 및 최소화, 닫기 버튼을 제공합니다. WPF 윈도우는 XAML (.xaml) 파일과 CodeBehind (.cs) 파일로 구성되어 있습니다. XAML 파일에서 <Window>는 가장 기본적인 뼈대가 되는 요소입니다. Visual Studio(Express)를 이용한다면 새로운 WPF 응용프로그램을 생성할 수 있을 것이며 다음과 같은 기본적인 윈도우가 제공될 것입니다.

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>

    </Grid>
</Window>

x:class 속성은 XAML 파일에게 어떤 클래스를 이용하는지 알려줍니다. 이 때 Window1은 Visual Studio가 우리를 위해 자동으로 생성해줍니다. VS 프로젝트 트리에서 XAML 파일의 하위 노드로 되어있음을 확인할 수 있습니다. 기본적으로 다음과 같습니다.

using System;
using System.Windows;
using System.Windows.Controls;
//…more using statements

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }
}

Window1은 부분 클래스로 정의되어 있습니다. 런타임에 XAML file과 결합하여 전체적인 윈도우를 보여주기 때문입니다. 실질적으로 InitializeComponent()를 호출하고 이로 인해 기능을 포함한 전체 윈도우가 실행되어 나타납니다.

XAML 파일로 돌아가 Window element에서 흥미로운 속성들을 발견할 수 있습니다. Title은 윈도우의 제목을 정의합니다(타이틀 바에 위치). 그 외 너비, 높이가 있습니다. 또한 몇 가지 namespace 정의가 있는데, XAML 챕터에서 다루도록 하겠습니다.

당신은 Visual Studio가 Window 내부에 Grid 컨트롤을 생성한 것도 확인했을 것입니다. Grid는 WPF 패널 중 하나입니다. Window는 어떤 패널이든, 컨트롤이든 단 하나의 하위 컨트롤만 가질 수 있습니다. 이때 패널은 여러 개의 하위 컨트롤들을 가질 수 있으며, 이렇게 구성하는 것이 좋은 방법입니다. 이 튜토리얼의 뒷 부분에서 다양한 타입의 패널들에 대해 자세하게 살펴볼 것입니다. 각 패널들은 WPF에서 매우 중요합니다.

주요 Window 속성

WPF Window 클래스는 다양하고 흥미로운 속성들을 가지고 있습니다. 속성을 통해서 응용프로그램 윈도우의 외향과 행위를 제어할 수 있습니다. 다음은 주요 속성들의 리스트입니다.

Icon - 윈도우의 아이콘을 정의합니다. 대게 윈도우 타이틀 전, 오른쪽 상단 코너에 위치합니다.

ResizeMode - 엔드유저가 윈도우 크기를 재조정할 수 있는지에 대한 컨트롤 입니다. 기본값은 CanResize로 다른 윈도우처럼 크기를 조정할 수 있습니다. 최대화/최소화 버튼을 사용 가능하고 모서리를 드래그 할 수도 있습니다. CanMinimize는 윈도우를 최소화 할 수는 있으나 최대화 하거나 드래그를 사용해서 크게 또는 작게 조정할 수 없습니다. NoResize는 가장 제한적인 것으로 최대화 버튼과 최소화 버튼을 제거하며 드래그로 크게 또는 작게 조정할 수도 없습니다.

ShowInTaskbar - 기본 값은 true 입니다. 만약 false로 설정하면 당신이 실행시킨 윈도우가 Windows taskbar에 나타나지 않습니다. 중요하지 않은 윈도우이거나 트레이에 최소화하려는 응용프로그램의 경우 유용합니다.

SizeToContent - 내용에 따라 윈도우 크기를 자동으로 재조정할 지 결정합니다. 기본 값은 Manual로, 자동으로 재조정하지 않습니다. 그 외 옵션으로는 Width, Height, WidthAndHeight가 있는데 수평으로, 수직으로 또는 수평 및 수직으로 재조정합니다.

Topmost - 기본값은 false 입니다. true인 경우, 최소화 하지 않는 이상 해당 윈도우가 다른 윈도우보다 앞에 위치합니다. 특별한 경우에만 사용합니다.

WindowStartupLocation - 윈도우 초기 위치에 대한 컨트롤입니다. 기본값은 Manual로, Top, Left 속성에 정의한 대로 초기 위치가 결정됩니다. 그 외 CenterOwner는 사용자 윈도우의 중앙에 윈도우를 위치시킵니다. 그리고 CenterScreen는 스크린의 중앙에 윈도우를 위치시킵니다.

WindowState - 초기 Window 상태에 대한 Control들입니다. Normal, Maximized, Minimized가 있습니다. 기본값은 Normal이며, 당신이 Window 상태를 Maximized 혹은 Minimized가 아닌 상태로 시작할 때 사용합니다.

그 외 많은 속성들은 각자 살펴보고 다음 챕터로 넘어가겠습니다.