WPF
Windows Presentation Foundation (WPF) - это программный интерфейс приложения для создания приложений, который объединяет различные API настольных компьютеров в единую объектную модель и обеспечивает четкое разделение проблем с помощью XAML.
Первоначальный интерфейс API графического интерфейса рабочего стола, поддерживаемый платформой .NET, был назван Windows Forms. Хотя этот API все еще полностью поддерживается, .NET 3.0 познакомила программистов с API под названием Windows Presentation Foundation (WPF). В отличие от Windows Forms, эта структура объединяет ряд ключевых служб, включая привязку данных, 2D и 3D графику, анимацию и расширенные документы, в единую унифицированную объектную модель. Все это достигается с помощью декларативной грамматики разметки под названием Extensible Application Markup Language (XAML). Кроме того, архитектура элемента управления WPF предоставляет тривиальный способ изменить внешний вид типичного элемента управления, радикально используя немного больше, чем хорошо продуманный XAML.
Когда была выпущена версия 1.0 платформы .NET, программисты, которым необходимо было создавать графические настольные приложения, использовали два API-интерфейса Windows Forms и GDI+, упакованные в основном в Windows.Forms.dll и System.Drawing.dll. В то время как Windows Forms и GDI+ по-прежнему являются жизнеспособными API для создания традиционных графических интерфейсов рабочего стола, Microsoft поставила альтернативный графический интерфейс рабочего стола под названием Windows Presentation Foundation (WPF), начиная с выпуска .NET 3.0. WPF и Windows Forms присоединились к семейству .NET Core с выпуском .NET Core 3.0.
Одним из наиболее убедительных преимуществ WPF является то, что
он предоставляет способ четко отделить внешний вид приложения с графическим интерфейсом от логики программирования, которая им управляет. Используя XAML, можно определить пользовательский интерфейс приложения с помощью разметки XML. Эта разметка, созданная с помощью таких инструментов, как Microsoft Visual Studio или Blend для Visual Studio, затем может быть подключена к соответствующему файлу кода C # , чтобы обеспечить функциональность программы.
Расширяемый язык разметки приложений (XAML)-это декларативный язык на основе XML, разработанный корпорацией Майкрософт, который используется для инициализации структурированных значений и объектов. Он доступен в соответствии с обещанием Microsoft Open Specification.
XAML -это декларативный язык на основе XML, который был разработан корпорацией Майкрософт, WPF применяется для активации структурированных значений и объектов. WPF доступен в соответствии с обещанием Microsoft Open Specification.
С помощью XAML в разметке можно не только определить такие простые элементы интерфейса как кнопки, сетки и т.д, но и анимцию, 2D и 3D-графику, мультимедийные функции, а также логику привязки данных.
XAML имеет возможность позволить упростить настройку элемента управления внешнего вида. Элементы для управления WPF можно изменять при помощи стиля и определенных шаблонов, они позволяют изменять общий внешний вид приложения без дополнительных усилий. В отличие от разработки Windows Forms, единственная весомая причина для проектирования настраиваемого элемента управления WPF с нуля - это необходимость изменить поведение элемента управления (например, добавить настраиваемые методы, свойства или события; создать подкласс существующего элемента управления для переопределения виртуальных членов. ). Если просто нужно изменить внешний вид элемента управления , то это можно сделать полностью с помощью разметки.
Инструмент GUI, под названием Windows Forms, выполнял все запросы графического рендеринга, используя низкоуровневый API на основе C (GDI), который был неотъемлемой частью ОС Windows много лет. GDI предоставляет приемлемую производительность для типичных бизнес-приложений и простых графических программ. Но, если приложению пользовательского интерфейса требовалось задействовать высокопроизводительную графику то необходимо было подключать DirectX.
Модель программирования WPF совершенно иная, поскольку GDI не используется при отрисовке графических данных. Все операции рендеринга (например, 2D-графика, 3D-графика, анимация, рендеринг элементов управления и т. Д.) Теперь используют API DirectX. Первое очевидное преимущество заключается в том, что ваши приложения WPF будут автоматически использовать преимущества аппаратной и программной оптимизации. Кроме того, приложения WPF могут подключаться к богатым графическим сервисам (эффекты размытия, сглаживание, прозрачность и т. Д.) Без сложного программирования непосредственно с использованием DirectX API.
Ясно, что WPF вносит много значительных изменений. Однако есть пять ключевых принципов, которые сразу же выделяются, потому что они сильно отличаются от предыдущих наборов инструментов пользовательского интерфейса Windows, таких как Windows Forms. Эти принципы следующие:
1)Аппаратное ускорение: все отрисовки WPF выполняются через DirectX, что позволяет использовать преимущества новейших современных видеокарт.
2)Независимость от разрешения: WPF достаточно гибок, чтобы увеличивать или уменьшать масштаб в соответствии с настройками монитора и отображения, в зависимости от настройки DPI системы.
3)Отсутствие фиксированного внешнего вида элемента управления: в традиционной разработке для Windows существует большая пропасть между элементами управления, которые можно настроить в соответствии с вашими потребностями (так называемые элементы управления, нарисованные владельцем), и элементами, которые отображаются операционной системой и принципиально исправлены внешне. В WPF все, от простого прямоугольника до стандартной кнопки или более сложной панели инструментов, рисуется с использованием одного и того же механизма визуализации и полностью настраивается. По этой причине элементы управления WPF часто называют элементами управления без внешнего вида - они определяют функциональные возможности элемента управления, но не имеют зашитого «внешнего вида».
4)Декларативные пользовательские интерфейсы. XAML позволяет создавать окно без использования кода. XAML не ограничивает вас фиксированными, неизменными пользовательскими интерфейсами. Можно использовать такие инструменты, как привязка данных и триггеры, для автоматизации базового поведения пользовательского интерфейса (, и все это без написания ни одной строки C # .
5)Объектно-ориентированное рисование: даже если не планируется работать с визуальным слоем более низкого уровня (а не с слоем элементов более высокого уровня), Нельзя работать с рисованием и пикселями. Вместо этого создается объект формы и дается разрешение WPF поддерживать отображение наиболее оптимизированным способом.