Расширение имени файла | .xaml |
---|---|
Тип интернет-СМИ | приложение/xaml+xml |
Разработано | Майкрософт |
Первоначальный выпуск | Ноябрь 2006 г ( 2006-11 ) | [1]
Последний релиз | v2019 12 марта 2019 г. [2] ( 2019-03-12 ) |
Тип формата | Язык разметки пользовательского интерфейса |
Расширенный от | XML |
Расширяемый язык разметки приложений ( XAML / ˈ z æ m əl / ) —декларативный XML, разработанныйMicrosoftдля инициализации структурированных значений и объектов. Он доступен в соответствии с Microsoft'sOpen Specification Promise.[3]
XAML широко используется в Windows Presentation Foundation (WPF), Silverlight , Workflow Foundation (WF), Windows UI Library (WinUI), Universal Windows Platform (UWP) и .NET Multi-platform App UI (.NET MAUI). В WPF и UWP XAML — это язык разметки пользовательского интерфейса для определения элементов пользовательского интерфейса, привязки данных и событий. Однако в WF XAML определяет рабочие процессы .
Элементы XAML напрямую сопоставляются с экземплярами объектов Common Language Runtime (CLR), тогда как атрибуты XAML сопоставляются со свойствами и событиями CLR этих объектов.
Все, что создано или реализовано в XAML, может быть выражено с использованием более традиционного языка .NET, такого как C# или Visual Basic .NET . Однако ключевым аспектом технологии является снижение сложности, необходимой для инструментов для обработки XAML, поскольку он основан на XML. [4]
Первоначально XAML расшифровывался как Extensible Avalon Markup Language, а Avalon был кодовым названием Windows Presentation Foundation (WPF). [5] Однако до окончания разработки .NET Framework 3.0 Microsoft приняла XAML для Workflow Foundation (WF). [5]
В WPF XAML описывает визуальные пользовательские интерфейсы . WPF позволяет определять как 2D-, так и 3D-объекты, вращения, анимации и множество других эффектов и функций. Файл XAML может быть скомпилирован в файл Binary Application Markup Language (BAML), [5] [6] , который может быть вставлен как ресурс в сборку .NET Framework. Во время выполнения механизм фреймворка извлекает файл BAML из ресурсов сборки, анализирует его и создает соответствующее визуальное дерево или рабочий процесс WPF.
В контексте WF XAML описывает потенциально долгосрочную декларативную логику, например, созданную инструментами моделирования процессов и системами правил. Формат сериализации для рабочих процессов ранее назывался XOML, чтобы отличать его от использования XAML в разметке пользовательского интерфейса, но теперь они больше не различаются. Однако расширение файла для файлов, содержащих разметку рабочего процесса, по-прежнему ".xoml". [7]
XAML использует особый способ определения внешнего вида, называемый Templates ; в отличие от синтаксиса каскадных таблиц стилей он ближе к XBL . [8]
Для создания файлов XAML можно использовать Microsoft Expression Blend , Microsoft Visual Studio , размещаемый визуальный конструктор WF или XAMLPad. [9]
В этом примере Windows Presentation Foundation показан текст «Hello, world!» в контейнере XAML верхнего уровня, называемом Canvas.
<Canvas xmlns= "http://schemas.microsoft.com/client/2010" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" > <TextBlock> Привет, мир! </TextBlock> </Canvas>
Схему ( xmlns="http://schemas.microsoft.com/..."
часть) может потребоваться изменить для работы на вашем компьютере. Используя схему, рекомендуемую Microsoft, пример также может быть [10]
<Canvas xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" > <TextBlock> Привет, мир! </TextBlock> </Canvas>
Важнейшей частью использования XAML в полном объеме является правильное использование привязки, а также удобство создания собственных пользовательских элементов по мере необходимости для ваших конкретных нужд. Привязка может быть выполнена следующим образом:
<TextBox x:Name= "txtInput" /> <TextBlock Text= "{Binding ElementName=txtInput,Path=Text}" />
Существует три основных реализации XAML от Microsoft:
Эти версии имеют некоторые различия в поведении анализа. [11] Кроме того, анализатор Silverlight 4 XAML не на 100% обратно совместим с файлами Silverlight 3. Файлы Silverlight 3 XAML могут быть отклонены или проанализированы по-другому анализатором Silverlight 4. [12]
Исторически приложения на основе XAML могли запускаться в некоторых веб-браузерах , таких как Internet Explorer и Firefox . Этого можно было достичь с помощью файлов XBAP, созданных из приложений WPF , или с помощью плагина браузера Silverlight . Однако оба эти метода теперь не поддерживаются всеми основными браузерами из-за их зависимости от прекращенного интерфейса плагина браузера NPAPI . [13] [14]
В 2007 году Европейский комитет по совместимым системам (ECIS) — коалиция в основном американских компаний-разработчиков программного обеспечения — обвинил Microsoft в попытке захватить HTML и заменить его на XAML, тем самым создав привязку к поставщику . [15] [16] Джереми Реймер, пишущий для Ars Technica, назвал этот комментарий «самой вопиющей ошибкой» и добавил, что XAML вряд ли когда-либо заменит HTML. [16]
BAML означает Binary Application Markup Language, который является скомпилированной версией XAML. Когда вы компилируете свой XAML, он создает файл BAML.
Программы (или модели) рабочих процессов сохраняются в формате XAML, который является общим для Avalon для сериализации типов .NET в виде XML. Avalon XAML полностью посвящен пользовательскому интерфейсу, а Workflow XAML полностью посвящен бизнес-процессам, поэтому между ними есть существенная семантическая разница. Расширение файла XOML, похоже, сохранится для моделей рабочих процессов, хотя формат файла — XAML.
Silverlight включает в себя анализатор XAML, который является частью основной установки Silverlight. Silverlight использует различные анализаторы XAML в зависимости от того, нацелено ли ваше приложение на Silverlight 3 или Silverlight 4. Эти два анализатора существуют бок о бок в Silverlight 4 для совместимости. В некоторых случаях поведение анализа XAML в Silverlight отличается от поведения анализа в Windows Presentation Foundation (WPF). WPF имеет свой собственный анализатор XAML.