Поделиться через


XAML

Язык разметки приложений eXtensible (XAML) — это язык на основе XML, который является альтернативой программированию кода для создания экземпляров и инициализации объектов, а также организации этих объектов в иерархиях родительского дочернего элемента.

XAML позволяет разработчикам определять пользовательские интерфейсы в приложениях пользовательского интерфейса приложений .NET (.NET MAUI), используя разметку, а не код. XAML не требуется в приложении .NET MAUI, но это рекомендуемый подход к разработке пользовательского интерфейса, так как он часто более краткий, более визуально согласованный и имеет поддержку инструментов. XAML также хорошо подходит для использования с шаблоном Model-View-ViewModel (MVVM), где XAML определяет представление, связанное с кодом представления с помощью привязки данных на основе XAML.

В XAML-файле можно определить пользовательские интерфейсы с помощью всех представлений, макетов и страниц .NET MAUI, а также пользовательских классов. XAML-файл можно скомпилировать или внедрить в пакет приложения. В любом случае XAML анализируется во время сборки для поиска именованных объектов и во время выполнения объекты, представленные XAML, создаются и инициализированы.

XAML имеет несколько преимуществ по сравнению с эквивалентным кодом:

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

Существуют также недостатки, в основном связанные с ограничениями, которые являются встроенными для языков разметки:

  • XAML не может содержать код. Все обработчики событий должны быть определены в файле кода.
  • XAML не может содержать циклы для повторяющейся обработки. Однако существуют элементы управления, которые отображают коллекции данных, например ListView и CollectionView.
  • XAML не может содержать условную обработку. Однако привязка данных может ссылаться на преобразователь привязки на основе кода, который эффективно позволяет выполнять условную обработку.
  • Xaml обычно не может создавать экземпляры классов, которые не определяют конструктор без параметров, хотя это ограничение иногда может быть преодолено.
  • Xaml обычно не может вызывать методы, хотя это ограничение иногда может быть преодолено.

Нет визуального конструктора для создания XAML в приложениях .NET MAUI. Все XAML должны быть написаны вручную, но вы можете использовать горячую перезагрузку XAML для просмотра пользовательского интерфейса при его редактировании.

XAML — это в основном XML, но XAML имеет некоторые уникальные функции синтаксиса. Самые важные из них:

  • Элементы свойства
  • Вложенные свойства
  • Расширения разметки

Эти функции не являются расширениями XML. XAML является полностью юридическим XML. Но эти функции синтаксиса XAML используют XML уникальным образом.