본문 바로가기
카테고리 없음

[C#/WPF] WPF 기본 구조

by Sein_ 2025. 12. 24.
728x90

WPF 구성

WPF 프로젝트는 애플리케이션(App) 과 윈도우(Window) 로 시작한다.

UI는 보통 XAML 과 코드비하인드(.xaml.cs) 로 분리되어 관리된다.

  • App.xaml : 앱 전역 설정/리소스/시작 창 지정
  • App.xaml.cs : 앱 시작/종료 등 전역 초기화 코드
  • MainWindow.xaml : 메인 윈도우 UI(XAML)
  • MainWindow.xaml.cs : 메인 윈도우 로직/이벤트 코드(코드비하인드)

 

App.xaml

  • 애플리케이션 전역 설정 파일이다.
  • 앱이 처음 실행될 때 어떤 창을 띄울지 결정한다.
  • 전역 리소스(Style/Brush/Template 등)를 등록한다.
<Application x:Class="WpfApp1.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
    </Application.Resources>
</Application>

 

App.xaml 코드 분석

StartupUri="MainWindow.xaml"

앱 시작 시 자동으로 생성/표시할 시작 Window를 지정한다.
따로 new MainWindow().Show() 코드를 쓰지 않아도 MainWindow가 뜬다.

 

Application.Resources

앱 전체에서 공유할 리소스를 등록하는 공간이다.
Style, 색상 Brush, ControlTemplate 등을 여기 두면 전체 창에서 재사용한다.

 

 

App.xaml.cs

  • App.xaml의 코드 영역이다.
  • 앱 시작/종료 같은 전역 이벤트를 처리한다.
  • 설정 로딩, DI 등록 같은 “앱 단위 초기화”를 여기서 많이 한다.

(예: OnStartup, OnExit 오버라이드)

 

MainWindow.xaml (UI)

메인 윈도우의 UI를 XAML로 정의한다.

레이아웃 패널을 이용해 컨트롤을 배치한다.

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Button Content="Click" Width="120" Height="35" />
    </Grid>
</Window>

 

MainWindow.xaml.cs

  • MainWindow의 사용자 코드 영역이다.
  • 이벤트 처리/로직 코드를 여기에 작성한다.
  • 생성자에서 InitializeComponent()를 호출해 XAML을 로드한다.
using System.Windows;

namespace WpfApp1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

 

MainWindow.xaml.cs 코드 분석

InitializeComponent()

  • XAML에 정의된 UI를 읽어서 Window에 컨트롤을 생성/연결한다.
  • XAML에 설정한 속성/배치/이벤트 연결이 적용된 상태로 창이 만들어진다.
  • 외부에서 호출할 이유가 없으므로 보통 생성자 내부에서만 호출한다.

 

WPF 기본 흐름

App 시작 → App.xaml 로드 → StartupUri의 Window 생성

Window 생성자 → InitializeComponent() → UI 구성

사용자 입력 → RoutedEvent / Command / Binding으로 동작 처리

 

 

https://basiclike.tistory.com/322?category=1210469

 

2. WPF 기본구조 살펴보기

01. WPF 실행하기더보기01.1 WPF 프로젝트 초기 화면을 확인합니다.*Template 어떤 것을 만들 때 안내 역할을 하는, 사용상의 형식. 01.2 WPF 기본 템플릿 실행하고 살펴봅니다.Ctrl + F5 를 누르거나, "Visual

basiclike.tistory.com