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

Что такое 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, подробно описанные после нее.

- Документы и печать
- Безопасность, доступность и локализация
- Предлагает совместимость с 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
- 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 перейдите в меню Файл > Создать > Проект
Шаг 2) В новом окне проекта
- Выберите приложение WPF
- Введите имя как «MyWPF».
- нажмите OK
Шаг 3) Visual Studio по умолчанию создает два файла
- XAML-файл (MainWindow.xaml)
- CS-файл (MainWindow.xaml.cs)
MainWindow.xaml имеет
- Окно дизайна
- XAML файл
В окне XAML по умолчанию отображаются следующие теги:
По умолчанию Grid является первым элементом.
Файл MainWindow.xaml.cs содержит соответствующий код программной части для файла XAML-проекта:
Шаг 4) В ящике для инструментов,
- Перетащите текстBox элемент в окне дизайна
- ТекстBox появится в окне дизайна
- Вы увидите XAML-код для текста.Box добавленный
Шаг 5) Измените текст на «Первая программа WPF».
Шаг 6) Нажмите кнопку «Пуск»
Шаг 7) В результате вы увидите окно.
Поздравляем! Вы спроектировали и создали свое первое приложение 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, привязка данных и визуальное дерево.









