Учебник WPF для начинающих

⚡ Умное резюме

WPF (Windows Презентация Foundation) является Microsoftструктура для создания многофункциональных систем Windows Настольные приложения. Начинающие узнают, как XAML, привязка данных и аппаратное ускорение графики объединяются для создания масштабируемых, визуально насыщенных пользовательских интерфейсов с меньшим количеством кода.

  • 🧭 Foundation: WPF — это векторный фреймворк для создания пользовательских интерфейсов на базе DirectX, интегрированный в платформу .NET.
  • 🎨 Разметка XAML: Декларативный синтаксис XML отделяет проектирование интерфейса от бизнес-логики на C#.
  • 🧱 Archiтекстура: PresentationFramework, PresentationCore и Milcore взаимодействуют поверх DirectX для рендеринга.
  • 🔗 Связывание данных: Встроенная привязка соединяет элементы управления с источниками данных и обеспечивает работу паттерна MVVM.
  • 🇧🇷 Практическое начало: Шаблоны Visual Studio позволяют создать и запустить первое приложение WPF всего за семь шагов.
  • 🚀 Современная актуальность: WPF — это программное обеспечение с открытым исходным кодом, поставляемое с .NET 10 с долгосрочной поддержкой.

Учебник WPF для начинающих

Что такое WPF?

WPF представляет собой основу для построения Windows WPF — это приложение, позволяющее разработчикам создавать многофункциональные пользовательские интерфейсы с 3D-анимацией и насыщенными цветами, используя при этом меньше кода. Это векторный движок рендеринга, использующий аппаратное ускорение современных видеокарт, что делает пользовательский интерфейс быстрее и масштабируемее. WPF расшифровывается как Windows Презентация Foundation.

WPF можно считать эволюцией WinForms. Он предоставляет простую в использовании графическую систему отображения для Windows и обеспечивает четкое разделение между пользовательским интерфейсом и бизнес-логикой.

Приложения WPF обычно развертываются как автономные настольные программы, а также могут размещаться в качестве встроенных объектов в других приложениях.

Почему именно WPF?

Существует множество причин для использования платформы WPF. Вот некоторые из наиболее важных:

  • Идеальная платформа для использования, если вам нужно иметь дело с различными типами медиа.
  • WPF позволяет создавать пользовательские интерфейсы с различными темами оформления. Он также полезен, когда необходимо загрузить часть пользовательского интерфейса или привязать данные XML.
  • Он позволяет вам воспользоваться преимуществами большой библиотеки классов .NET, поскольку она построена на .NET
  • Независимость от разрешения экрана, поэтому приложения, разработанные с использованием WPF, могут работать на небольших экранах планшетов или 20-дюймовых мониторах.
  • WPF построен на основе DirectX, а не WinAPI. Он использует графическую систему компьютера клиента, что обеспечивает более высокую производительность рендеринга графики.
  • Поддерживает модель документооборота, обеспечивающую качество компоновки, сравнимое с «настольной издательской системой».
  • Внешний вид и поведение слабо связаны между собой. Это позволяет дизайнерам и разработчикам работать с двумя отдельными моделями.
  • В фреймворке WPF вы можете создавать графические инструменты, используя простые XML-документы, вместо анализа кода.
  • Позволяет использовать аппаратное ускорение для отрисовки графического интерфейса для повышения производительности.

Далее давайте посмотрим, как эта структура развивалась с течением времени.

История WPF

Windows 1.0 была первой средой графического интерфейса от MicrosoftОна работала как надстройка над DOS, используя системы GDI и USER для графики и пользовательского интерфейса.

DirectX был представлен в 1995 году как высокопроизводительная графическая система, предназначенная для игр и других графических сред. За прошедшие годы было выпущено множество версий, и DirectX 9 предоставил библиотеку, которую можно было использовать с управляемым кодом .NET.

Версия WPF Год выпуска .Net Версия Версия Visual Studio Особенности
3.0 2006 3.0 ARCXNUMX Первый выпуск.
Однако разработку WPF можно выполнить с помощью VS 2005.
3.5 2007 3.5 ВС 2008 Модификации и улучшения:
Модель приложения, привязка, элементы управления, документы, аннотации и трехмерные элементы пользовательского интерфейса.
3.5 SP1 2008 3.5 SP1 ARCXNUMX Встроенная поддержка заставки. Новое управление веб-браузером, поддержка пиксельных шейдеров DirectX.
4.0 2010 4.0 ВС 2010 Новые элементы управления: Календарь, Таблица данных, Выбор даты. Поддержка мультитач и манипуляций.
4.5 2012 4.5 ВС 2012 Более быстрый запуск, улучшенная производительность при отображении больших наборов данных.
Новый элемент управления Ribbon и интерфейс INotifyDataErrorInfo для проверки данных.
4.5.1 2013 4.5.1 ВС 2013 Незначительные улучшения производительности и надежности.
4.5.2 2014 4.5.2 NA Никаких серьезных изменений
4.6 2015 4.6 ВС 2015 Поддержка прозрачного дочернего окна
Улучшения HDPI и Touch
4.8 2019 4.8 ВС 2019 Финальный крупный релиз .NET Framework, включающий исправления для высокого разрешения и улучшения доступности.
.NET Core 3.0 и более поздние версии 2019-настоящему Переход с .NET Core 3.0 на .NET 10 ВС 2019/2022 WPF становится открытым исходным кодом и поставляется в комплекте с современным .NET (приложения остаются открытыми). Windows-только).

WPF больше не имеет отдельной версии от .NET. С 2019 года он поставляется как компонент с открытым исходным кодом современной платформы .NET, и текущий релиз включен в состав .NET 10, который вышел в ноябре 2025 года в качестве версии с долгосрочной поддержкой (LTS).

Возможности WPF

На приведенной ниже диаграмме сгруппированы основные возможности WPF, подробно описанные после нее.

Возможности WPF
Возможности WPF
  • Документы и печать
  • Безопасность, доступность и локализация
  • Предлагает совместимость с Windows Элементы управления формами
  • Direct3D используется в графических приложениях, где важна производительность.
  • Использует аппаратное обеспечение видеокарты для рендеринга.
  • Векторная графика позволяет масштабировать приложение без потери качества.
  • WPF поддерживает систему логических пикселей с плавающей запятой и 32-битную цветовую модель ARGB.
  • Переопределение стилей и шаблонов элементов управления
  • Создание международных шрифтов из составных шрифтов
  • В WPF для отрисовки текста используется технология ClearType.
  • Позволяет использовать технику кэширования предварительно визуализированного текста в видеопамяти.
  • Ресурсный подход к каждому контролю
  • Таймеры презентации инициализируются и управляются WPF.
  • Также поддерживается связь между видео и анимацией.
  • В WPF стиль — это набор свойств, которые должны применяться к контенту, используемому для визуального отображения.
  • Шаблоны в WPF помогают изменять пользовательский интерфейс документа.
  • Команды — это более абстракция.tracт и слабосвязанная версия событий
  • Поддержка команд WPF уменьшает объем кода, который нам нужно написать.

Далее в этом WPF Учебник по C #В ходе изучения мы рассмотрим основные типы данных и инфраструктуру WPF.

Основные типы и инфраструктуры WPF

Классы в WPF делятся на четыре разных типа:

  • элемент пользовательского интерфейса
  • КаркасЭлемент
  • КонтентЭлемент
  • FrameworkContentElement

Эти классы известны как базовые классы элементов. Они составляют основу модели компоновки пользовательских интерфейсов.

Пользовательские интерфейсы WPF состоят из элементов, объединенных в древовидную иерархию, называемую деревом элементов. Дерево элементов — это интуитивно понятный способ компоновки пользовательских интерфейсов, и именно эта структура обеспечивает доступ к мощным сервисам пользовательского интерфейса.

XAML

Расширяемый язык разметки приложений, называемый «XAML» (произносится как «заммель»), представляет собой декларативный способ определения пользовательских интерфейсов.

Вот определение простой кнопки в XAML:

<Button
FontSize="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
>
Say Hello Guru99</Button>

Преимущества использования языка XAML:

  • XAML разделяет внешний вид интерфейса пользователя и логику бэкэнда.
  • XAML — это самый простой способ представления пользовательских интерфейсов.
  • XAML эффективно работает с инструментами проектирования.

Управляет тем,

Фреймворк WPF поддерживает множество полезных элементов управления, таких как:

  • Редактирование элементов управления, таких как текстBox, ПроверятьBox, Переключатель
  • Элементы управления списком, такие как списокBox, Просмотр списка, Просмотр дерева
  • Информация о пользователе, такая как метка, WPF ProgressBar, всплывающая подсказка.
  • Действие, такое как меню, кнопка и панель инструментов.
  • Такие виды, как граница, изображение WPF и окно просмотра.
  • Типичные диалоговые окна, такие как OpenFileDialog и PrintDialog.
  • Контейнеры, такие как TabControl, ScrollBar и Group.Box
  • Макеты, такие как DockPanel, StackPanel и Grid.
  • Навигация, такая как фрейм и гиперссылка.

Внешний вид элементов управления можно настроить с помощью стилей и шаблонов без программирования. Вы также можете создать собственный элемент управления, создав новый класс из соответствующего базового класса.

Внешний вид

WPF предоставляет возможность настройки внешнего вида вашего приложения. Он позволяет вам устанавливать объекты и значения для таких вещей, как шрифты, фон и т. д.

Функция стилей позволяет стандартизировать внешний вид всего продукта. Это позволяет вам заменить внешний вид по умолчанию, сохраняя при этом поведение по умолчанию.

Шаблон данных позволяет управлять стандартным отображением связанных данных. С помощью тем можно легко применять визуальные стили операционной системы.

Макет и панели

Макет помогает правильно расположить и задать размеры элементов управления. Он является частью процесса создания пользовательского интерфейса. Фреймворк WPF упрощает процесс компоновки и обеспечивает лучшую адаптивность внешнего вида пользовательского интерфейса.

Инфраструктура макета предоставляется пятью основными классами: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid и 5) Canvas

Графика

WPF предоставляет улучшенную графическую систему:

  • WPF использует независимые от устройства единицы измерения, что обеспечивает независимость от разрешения и устройства. Каждый независимый от устройства пиксель автоматически масштабируется в соответствии с параметром «точек на дюйм» системы.
  • WPF использует double вместо float и поддерживает более широкий набор цветов.
  • Графический движок WPF спроектирован таким образом, что он может использовать преимущества графического оборудования, когда оно доступно.

Документы и печать

Фреймворк WPF предлагает три типа документов:

  • Фиксированные документы: Этот тип документа поддерживает WYSIWПрезентация ЮГ.
  • Расходные документы: Позволяет настраивать и перекомпоновывать содержимое на основе переменных времени выполнения, таких как размер окна и разрешение устройства.
  • XPS-документы: Постраничное представление электронного документа в формате XML. XPS — это открытый стандартизированный формат документов.

WPF обеспечивает лучший контроль над системой печати, включая удаленную печать и очереди. Кроме того, документы XPS можно печатать напрямую, без преобразования их в формат для печати.

Рассмотрев основные элементы, давайте посмотрим, как эти детали соединяются внутри.

WPF Archiтекстура

WPF является частью платформы .NET. Он содержит как управляемый, так и неуправляемый код. Важные компоненты архитектуры WPF показаны на рисунке ниже:

WPF Archiтекстура

WPF Archiтекстура

Компоненты архитектуры WPF

  • PresentationFramework: Помогает создавать элементы верхнего уровня, такие как элементы управления, стили, макеты, окна и т. д.
  • PresentationCore: Он содержит базовые типы, такие как UIElement и Visual, от которых наследуются все элементы управления и фигуры в PresentationFramework.dll.
  • CLR: делает процесс разработки продуктивным, предлагая такие функции, как управление памятью, обработка ошибок и т. д.
  • Милкор: Milcore — это часть неуправляемого кода, обеспечивающая тесную интеграцию с DirectX.
  • DirectX: Это низкоуровневый API, который отвечает за отрисовку графики в WPF. DirectX взаимодействует с драйверами и отрисовывает контент.
  • Пользователь32: Это основной API, широко используемый многими программами. Он управляет разделением памяти и процессов. User32 помогает определить, какой элемент будет размещен в каком месте на экране.
  • Ядро: Входные данные поступают в виде сигнала от драйвера устройства в режиме ядра и направляются в соответствующий процесс путем соединения с ним. Windows ядро и User32.

Привязка данных WPF

Привязка данных — одна из самых мощных концепций в WPF. Вместо того чтобы писать код, который вручную копирует значения между элементами управления и объектами, вы объявляете соединение в XAML, и WPF автоматически синхронизирует обе стороны. Например:

<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />

WPF поддерживает четыре режима привязки:

  • В одну сторону: Элемент управления обновляется при изменении исходных данных.
  • Двусторонний: Изменения происходят в обоих направлениях между управляющим и исходным объектами.
  • Один раз: Система управления считывает значение из источника только один раз, во время загрузки.
  • OneWayToSource: Регулятор передает свое значение источнику, никогда не в обратном направлении.

Привязка данных также лежит в основе паттерна MVVM (Model-View-ViewModel), наиболее распространенной архитектуры для профессиональных приложений WPF, поскольку она позволяет представлению оставаться в XAML, в то время как логика находится в тестируемых классах C#.

💡 Совет: Реализуйте интерфейс INotifyPropertyChanged в ваших классах данных. Без него пользовательский интерфейс не будет обновляться при изменении значений свойств в коде.

Установка WPF

Для установки WPF воспользуйтесь этой ссылкой: https://www.guru99.com/download-install-visual-studio.html

Далее в этом уроке по созданию приложений WPF мы разработаем наше первое приложение WPF.

Как создать свое первое приложение WPF?

В этом примере WPF мы разработаем базовое приложение WPF. Итак, начнем простую реализацию, следуя шагам, приведенным в примере приложения WPF ниже.

Шаг 1) В Visual Studio перейдите в меню Файл > Создать > Проект

В меню «Файл» Visual Studio отображается опция «Новый проект».

Шаг 2) В новом окне проекта

  1. Выберите приложение WPF
  2. Введите имя как «MyWPF».
  3. нажмите OK

Новое окно проекта с выбранным шаблоном приложения WPF.

Шаг 3) Visual Studio по умолчанию создает два файла

  • XAML-файл (MainWindow.xaml)
  • CS-файл (MainWindow.xaml.cs)

Обозреватель решений отображает файлы MainWindow.xaml и MainWindow.xaml.cs.

MainWindow.xaml имеет

  1. Окно дизайна
  2. XAML файл

Окно проектирования MainWindow.xaml и редактор XAML в Visual Studio

В окне XAML по умолчанию отображаются следующие теги:

Теги XAML по умолчанию, генерируемые для нового окна WPF.

По умолчанию Grid является первым элементом.

Файл MainWindow.xaml.cs содержит соответствующий код программной части для файла XAML-проекта:

Файл MainWindow.xaml.cs, содержащий код окна WPF.

Шаг 4) В ящике для инструментов,

  1. Перетащите текстBox элемент в окне дизайна
  2. ТекстBox появится в окне дизайна
  3. Вы увидите XAML-код для текста.Box добавленный

Перетаскивание текстаBox из панели инструментов в окно проектирования WPF

Шаг 5) Измените текст на «Первая программа WPF».

Редактирование текстаBox текстовое свойство для первой программы WPF

Шаг 6) Нажмите кнопку «Пуск»

Кнопка «Пуск» в Visual Studio для запуска приложения WPF.

Шаг 7) В результате вы увидите окно.

Окно запущенного приложения WPF, отображающее текст «Первая программа WPF».

Поздравляем! Вы спроектировали и создали свое первое приложение WPF. Далее в этом руководстве по WPF для начинающих мы увидим разницу между WPF и WinForms.

WPF против WinForms

WPF WinForms
Это более новая структура, поэтому она больше соответствует текущим стандартам. Он старше, поэтому более проверен.
Это гибкий и многофункциональный инструмент. С его помощью можно создавать очень сложные приложения без программирования и покупки элементов управления. Не такой уж и многофункциональный
Разработчики 3rd Управление партией ориентировано на совместимость с WPF, поскольку это будущее. Существует множество сторонних элементов управления, которые вы можете купить или получить бесплатно.
XAML позволяет легко создавать и редактировать графический интерфейс пользователя. Он позволяет разделить работу между дизайнером (XAML) и программистом (C#, VB.NET и т. д.). In Windows В формах весь код написан в одном месте.
Навыки работы с XAML напрямую применимы к более новым фреймворкам, таким как WinUI 3, .NET MAUI и Avalonia UI. Навыки работы с WinForms применимы в основном к классической версии. Windows Разработка настольных приложений.
Встроенный набор элементов управления WPF ограничен. Встроенные элементы управления очень мощные

Тип приложений, созданных с помощью WPF

  • WPF используется для автономного применения. Windows Настольные приложения, такие как корпоративные инструменты для бизнес-процессов, панели мониторинга, торговые терминалы и программное обеспечение для проектирования.
  • Windows Формы и страницы WPF могут сосуществовать в одном приложении.
  • Вы можете разрабатывать приложения с навигацией по страницам/окнам.

WPF в современном .NET

Microsoft WPF был открыт для публичного использования в декабре 2018 года, и начиная с .NET Core 3.0 (2019) фреймворк поставляется со всеми современными версиями .NET, вплоть до .NET 10 включительно. Переход приложения на современный .NET обеспечивает более быстрый запуск, упрощенное развертывание благодаря автономной публикации и доступ к текущим возможностям языка C#, при этом модель программирования WPF остается неизменной.

WPF остается Windows— только. Если вы сегодня выбираете фреймворк для настольных компьютеров, это сравнение вам поможет:

Рамки лучший для
WPF Зрелый, многофункциональный Windows настольные приложения с огромной экосистемой
WinUI 3 Новые приложения, ориентированные на современный Windows 11 внешний вид и ощущения
.NET МАУИ Кроссплатформенные приложения, охватывающие Windows, macOS, Androidи iOS

Поскольку WPF активно поддерживается и глубоко интегрирован в корпоративное программное обеспечение, его изучение остается практичным вложением. После того, как вы освоите создание таких приложений, стоит попрактиковаться в наиболее распространенных методах. Вопросы для собеседования в WPF чтобы закрепить такие концепции, как XAML, привязка данных и визуальное дерево.

Часто задаваемые вопросы (FAQ)

Для проектирования интерфейса вам потребуется XAML, а для логики приложения — C# (или VB.NET). Базовые знания объектно-ориентированного программирования и библиотеки классов .NET значительно упростят изучение WPF.

Нет. WPF зависит от DirectX и Windows API, поэтому он работает только на WindowsДля кроссплатформенной разработки XAML рассмотрите следующие варианты: Пользовательский интерфейс Авалонии or .NET МАУИ.

Да. Такие инструменты, как Второй пилот GitHub позволяет генерировать XAML-макеты, выражения привязки и стили из комментариев, что ускоряет обучение и уменьшает количество повторяющейся разметки для начинающих.

Вы можете интегрировать ML.NET для локального машинного обучения или облачных сервисов искусственного интеллекта, таких как Azure Откройте OpenAI из своего кода на C#, а затем отобразите результаты с помощью стандартной привязки данных WPF.

Да. WPF — это программное обеспечение с открытым исходным кодом, распространяемое под лицензией MIT, и вы можете бесплатно создавать приложения с помощью Visual Studio Community Edition.

Подведем итог этой публикации следующим образом: