WPF

[WPF] WPF Application(1) - Window 클래스

귀뚜래미 2022. 9. 1. 17:21
728x90

 

Window

- WPF 응용 프로그램 개발 시 가장 먼저 보이는 것은 Window 클래스이다.

- 윈도우의 뼈대로, 기본적인 경계선, 타이틀 바, 최대화 및 최소화, 닫기 버튼을 제공한다.

- WPF는 XAML(.xaml) 파일과 CodeBehind(.cs) 파일로 구성돼있다.

- XAML 파일에서 <Window>는 가장 기본적인 뼈대가 되는 요소이다.

 

<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은 VS가 자동으로 생성해준다.

- VS 프로젝트 트리에서 XAML 파일의 하위 노드로 됨을 확인할 수 있다.

- Title은 윈도우의 제목을 정의한다.

- Window는 어떤 패널이나 컨트롤이든 단 하나의 하위 컨트롤만 가질 수 있다.

 

namespace WpfApplication1
{ 
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }
}

- Window1은 부분 클래스로 정의되어 있다. 런타임에 XAML 파일과 결합해 전체적인 윈도우를 보여주기 때문이다.

- 실질적으로 InitializeComponent()를 호출하고 이로 인해 기능을 포함한 전체 윈도우가 실행돼 나타난다.

 

 

 

주요 Window 속성

Icon : 윈도우의 아이콘 정의

 

ResizeMode : 유저가 윈도우 크기를 재조정할 수 있는지에 대한 컨트롤

 - CanResize(기본값) : 다른 윈도우처럼 크기 조정 가능, 최대화/최소화 및 모서리 드래그 사용 가능

 - CanMinimize : 윈도우 최소화는 가능하나 최대화 하거나 드래그 사용하여 크기 조정 불가

 - NoResize : 가장 제한적, 최대화/최소화 불가, 드래그로 크기 조정도 불가

 

ShowInTaskbar : 중요하지 않은 윈도우거나 트레이에 최소화하려는 응용 프로그램의 경우 사용

 - true(기본값) : 실행시킨 윈도우가 Windows taskbar에 나타남

 - false :실행시킨 윈도우가 Windows taskbar에 나타나지 않음 

 

SizeToContent : 내용에 따라 윈도우 크기를 자동으로 재조정할 지 결정

 - Manual(기본값) : 자동 재조정 안함

 - Width, Height, WidthAndHeight : 수평, 수직, 수평 및 수직으로 재조정

 

Topmost : 최소화 하지 않는 이상 해당 윈도우가 다른 윈도우보다 앞에 위치

 - true

 - false(기본값)

 

WindowStartupLocation : 윈도우 초기 위치에 대한 컨트롤

 - Manual(기본값) : Top, Left 속성에 정의한 대로 초기 위치 결정

 - CenterOwner : 사용자 윈도우의 중앙에 윈도우를 위치

 - CenterScreen : 스크린의 중앙에 윈도우를 위치

 

WindowState : 초기 윈도우 상태에 대한 컨트롤

 - Normal(기본값)

 - Maximize

 - Minimize

728x90

'WPF' 카테고리의 다른 글

[WPF] WPF Application(4) - Application Culture / UICulture  (0) 2022.09.06
[WPF] WPF Application(3) - 리소스  (0) 2022.09.06
[WPF] WPF Application(2) - App.xaml 과의 연동  (0) 2022.09.06
[WPF] XAML  (0) 2022.09.01
[WPF] WPF 시작  (0) 2022.08.30