XAMLязык разметки приложений
СЕРГЕЙ ЗВЯГИНСПЕЦИАЛЬНО ДЛЯ GetDev.NET
ИСТОРИЯ
Впервые публично были показаны альфа-сборки Windows Codename LonghornDesktop Composition Engine (теперь DWM) демонстрировал различные эффекты: прозрачность, летающие окна, масштабирование
WinHEC 2003
WinHEC 2003
Windows Codename Longhorn была представлена для разработчиковНовые подсистемы Windows: Avalon (теперь WPF), Indigo (теперь WCF), WinFS
PDC 2003
PDC 2003
Нотификации
Windows Codename Longhorn Windows 8
Avalon – графическая подсистема WindowsПроводник, панель задач, сайдбар и нотификации также являются частью этой подсистемы
Avalon
Avalon состоит из 3 компонентов:The "Avalon" EngineThe "Avalon" FrameworkXAML
Avalon
Avalon построен на DirectXВекторная графика легко масштабируется без участия разработчика и пользователяAvalon использует аппаратное ускорение, если видеокарта это позволяет
Avalon Engine
Элементы управления можно создавать с нуляТакже Avalon предоставляет разработчикам примитивы, на основе которых можно создавать собственные контролы
Avalon Framework
XAML – язык разметки для декларативного представления пользовательского интерфейсаXAML отделяет представление пользовательского интерфейса от кода и позволяет разработчикам и дизайнерам работать более продуктивно
XAML
Совместная работа
Создает дизайн
С помощью XAML дизайнеры и
разработчики могут выйти на новый
уровень взаимодействия
Добавляет бизнес логику
ОСНОВНЫЕ ПОНЯТИЯ
.NET Framework 3 и вышеWindows Presentation FoundationWindows Workflow Foundation
Silverlight (в т.ч. для Windows Phone)Windows Runtime XAML Framework
Где используется XAML?
Разметка основана на XML, поэтому может быть написана в любом текстовом редактореСуществуют WYSIWYG-редакторы, наиболее популярный – Expression Blend
Как создается XAML?
ДЕМО
КонтейнерыЭлементы управленияГрафические примитивыСлужбы документов
Элементы XAML
Позволяют определить отображение контроловМожно переопределить стандартные шаблоныМогут быть включены в описание элемента, могуть быть общими для контрола, могут быть вынесены в ресурсы
Стили и шаблоны
Markup Extensions используются для получения значения, которое не является ни примитивным, ни специфичным xaml-типомРасширение разметки записывается внутри фигурных скобок в значении атрибута
Расширения разметки
Data Binding используется для отображения и взаимодействия с даннымиПозволяет автоматически изменять свойства элемента пользовательского интерфейса при обновлении данныхСинтаксис соответствует расширению разметки: {Binding …}
Связывание данных
Различные трансформации (поворот, перемещение, масштабирование, наклон) и изменение свойств элементов пользовательского интерфейса во времени также могут быть заданы декларативно в разметке XAML
Трансформация и анимация
КАК ЭТО РАБОТАЕТ?
Разметка компилируется в файл .BAMLОн включается в сборку как ресурсНа этапе выполнения движок извлекает файл .BAML из сборки, парсит его и создает визуальное дерево или workflow
Как это работает?
При использовании WPF, Silverlight и WinRT разметка описывает пользовательский интерфейсПри использовании WF разметка описывает декларативную логику, файл имеет расширение .XOML. Формат сериализации также изначально назывался XOML
Как это работает?
Xaml Information SetПроцесс конвертации XML-документа в Xaml Information SetXaml Schema Information Set
Спецификация
Xaml Information Set – определяет структурированную информацию, которую объект Xaml может представлятьТермин “xaml-документ” означает xml-документ, описывающий Xaml Information Set
Спецификация: Xaml Information Set
Спецификация определяет правила, по которым xml-документ трансформируется в струкрурированную информацию Xaml Information Set
Спецификация: конвертация XML-документа
Эти правила могут быть расширены на основании различных XAML-словарей, определяющих схему документаСпособы задания таких словарей описаны в разделе спецификации Xaml Schema Information Set
Спецификация: Xaml Schema Information Set
Windows Presentation FoundationSilverlight 3Silverlight 4Windows Runtime XAML Framework
Различные реализации XAML (словарей)
ВОПРОСЫ?
Спецификации XAML http://cut.ms/bHgnMSDN: WPF XAML http://cut.ms/bHgoMSDN: Silverlight XAML http://cut.ms/bHgpMSDN: WinRT XAML http://cut.ms/bHgq
Полезные ссылки
СПАСИБО ЗА ВНИМАНИЕ!
Сергей Звягин
BingoRUS
Recommended