[Dev] WPF

WPF(Windows Presentation Foundation)는 Microsoft에서 개발한 그래픽 서브시스템으로, 데스크톱 애플리케이션의 사용자 인터페이스(UI)를 구축하기 위해 사용됩니다. WPF는 풍부한 그래픽, 멀티미디어, 유연한 레이아웃 및 스타일 기능을 제공하며, 다음과 같은 주요 특징들이 있습니다.

주요 특징

  1. 선언적 프로그래밍:
    • WPF는 XAML(Extensible Application Markup Language)을 사용하여 UI를 정의합니다. XAML은 XML 기반의 마크업 언어로, UI 요소를 선언적으로 정의할 수 있어 코드와 UI 레이아웃을 분리할 수 있습니다.
  2. 그래픽 렌더링:
    • WPF는 DirectX를 기반으로 하는 그래픽 엔진을 사용하여 고성능의 2D 및 3D 그래픽을 제공합니다. 이를 통해 애니메이션, 비주얼 이펙트, 고급 그래픽을 구현할 수 있습니다.
  3. 데이터 바인딩:
    • WPF는 강력한 데이터 바인딩 기능을 제공하여 UI 요소와 데이터 소스 간의 동기화를 자동화합니다. 이를 통해 MVVM(Model-View-ViewModel) 패턴을 쉽게 구현할 수 있습니다.
  4. 스타일 및 템플릿:
    • WPF는 스타일과 컨트롤 템플릿을 사용하여 애플리케이션의 외관을 일관성 있게 정의하고 커스터마이징할 수 있습니다. 이를 통해 코드의 재사용성을 높이고, 유지보수를 용이하게 합니다.
  5. 레이아웃 시스템:
    • WPF는 유연한 레이아웃 시스템을 제공하여 다양한 화면 크기와 해상도에 대응하는 UI를 쉽게 구성할 수 있습니다. Grid, StackPanel, DockPanel 등 다양한 레이아웃 컨테이너를 사용하여 복잡한 UI를 구성할 수 있습니다.
  6. 멀티미디어 지원:
    • WPF는 이미지, 비디오, 오디오 등 다양한 멀티미디어 콘텐츠를 쉽게 통합할 수 있는 기능을 제공합니다.

주요 특징
선언적 프로그래밍:

WPF는 XAML(Extensible Application Markup Language)을 사용하여 UI를 정의합니다. XAML은 XML 기반의 마크업 언어로, UI 요소를 선언적으로 정의할 수 있어 코드와 UI 레이아웃을 분리할 수 있습니다.
그래픽 렌더링:

WPF는 DirectX를 기반으로 하는 그래픽 엔진을 사용하여 고성능의 2D 및 3D 그래픽을 제공합니다. 이를 통해 애니메이션, 비주얼 이펙트, 고급 그래픽을 구현할 수 있습니다.
데이터 바인딩:

WPF는 강력한 데이터 바인딩 기능을 제공하여 UI 요소와 데이터 소스 간의 동기화를 자동화합니다. 이를 통해 MVVM(Model-View-ViewModel) 패턴을 쉽게 구현할 수 있습니다.
스타일 및 템플릿:

WPF는 스타일과 컨트롤 템플릿을 사용하여 애플리케이션의 외관을 일관성 있게 정의하고 커스터마이징할 수 있습니다. 이를 통해 코드의 재사용성을 높이고, 유지보수를 용이하게 합니다.
레이아웃 시스템:

WPF는 유연한 레이아웃 시스템을 제공하여 다양한 화면 크기와 해상도에 대응하는 UI를 쉽게 구성할 수 있습니다. Grid, StackPanel, DockPanel 등 다양한 레이아웃 컨테이너를 사용하여 복잡한 UI를 구성할 수 있습니다.
멀티미디어 지원:

WPF는 이미지, 비디오, 오디오 등 다양한 멀티미디어 콘텐츠를 쉽게 통합할 수 있는 기능을 제공합니다.

다음은 WPF 애플리케이션의 기본적인 XAML과 C# 코드를 보여주는 간단한 예제입니다.

간단한 예제

MainWindow.xaml

<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBlock Text="Hello, WPF!" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
</Window>

MainWindow.xaml.cs

using System.Windows;

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

설명

  • MainWindow.xaml: XAML 파일에서 Window 요소와 Grid 레이아웃 컨테이너를 정의하고, TextBlock을 사용하여 텍스트를 화면 중앙에 표시합니다.
  • MainWindow.xaml.cs: C# 파일에서 MainWindow 클래스를 정의하고, InitializeComponent 메서드를 호출하여 XAML 파일과 연결합니다.

이 간단한 예제는 WPF 애플리케이션의 기본 구조를 보여주며, XAML을 사용하여 UI를 정의하고 C# 코드 비하인드를 통해 로직을 구현하는 방식을 이해하는 데 도움이 됩니다.