🎨 Графическое программирование на C#

← Вернуться к модулю 7

Урок 7.1: Введение в WPF

Модуль 7 ⏱️ ~2 часа

📌 Ключевые моменты этого урока:

  • WPF = современный фреймворк с векторной графикой вместо GDI+ (растровой)
  • XAML - это XML-подобный язык для описания UI (не код C#)
  • Data Binding встроён в WPF - UI автоматически обновляется при изменении данных
  • WPF обычно медленнее GDI+ для простой графики, но мощнее для сложных приложений
  • MVVM паттерн разделяет логику (Model) от представления (View) через ViewModel

Отличия от Windows Forms

  • Разметка: WPF использует XAML вместо дизайнера
  • Графика: Векторная графика вместо растровой
  • Стили: Гибкая система стилей и шаблонов
  • Привязка данных: Встроенная поддержка Data Binding
  • Анимация: Встроенная поддержка анимации

XAML разметка

<Window x:Class="MyApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="My App" Height="450" Width="800">
    <Grid>
        <Button Content="Click Me" 
                Width="100" Height="30"
                Click="Button_Click"/>
    </Grid>
</Window>

MVVM паттерн

Model-View-ViewModel — архитектурный паттерн для WPF:

  • Model: Данные и бизнес-логика
  • View: XAML разметка, UI
  • ViewModel: Связь между Model и View

Первое WPF приложение

// MainWindow.xaml.cs
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
    
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("Hello WPF!");
    }
}

Практическое задание

Задание: Первое WPF приложение

  1. Создайте простое WPF приложение с кнопкой и текстовым полем
  2. При нажатии кнопки выводите текст в текстовое поле
  3. Изучите структуру XAML разметки

Проверка знаний

Ответьте на вопросы, чтобы проверить, насколько хорошо вы усвоили материал:

1. В чем основное отличие WPF от Windows Forms?
  • WPF использует растровую графику
  • WPF использует векторную графику и XAML
  • WPF работает только на Windows
  • WPF не поддерживает события
2. Что такое XAML?
  • Язык разметки для описания интерфейса в WPF
  • Язык программирования
  • Библиотека графики
  • Формат данных
3. Что такое MVVM паттерн?
  • Паттерн разделения логики и представления
  • Метод рисования
  • Тип данных
  • Алгоритм оптимизации