Возможности языка XAML 2009

XAML 2009 — это сокращение для новых компонентов языка XAML, которые расширяют существующую спецификацию языка XAML. XAML 2009 содержит ряд новых директив и конструкций. К ним относятся: директива x:Arguments; директива x:FactoryMethod; расширение разметки x:Reference; директива x:TypeArguments; встроенные типы общих примитивов языка (например, x:Char).

Поддержка XAML 2009 в WPF и Visual Studio

В WPF можно использовать возможности XAML 2009, но только для кода XAML, не скомпилированного с разметкой WPF. Скомпилированный XAML с разметкой и форма BAML кода XAML пока не поддерживают ключевые слова языка и компоненты XAML 2009.

Обратите внимание, что существующие методы для загрузки свободного XAML в WPF также могут иметь ограничения по безопасности и доступу для типов CLR и системы типов, являющихся более строгими по сравнению со скомпилированным XAML с разметкой. Дополнительные сведения см. в разделе Безопасность (WPF) или Стратегия безопасности WPF — безопасность платформы.

В XAML 2009 также реализованы дополнительные функции, изменяющие прежние конструкции XAML 2006 и основные формы разметки.

x:Key как объектный элемент

XAML 2009 может поддерживать x:Key как объект (элемент свойства, значением которого является элемент объекта), но в XAML 2006 x:Key поддерживался только как атрибут. См. раздел "XAML 2009" в статье x:Key Directive.

xmlns для свойств элементов

XAML 2009 может поддерживать определения пространств имен (xmlns) XAML для свойств элементов, а в XAML 2006 определения xmlns поддерживались только для элементов объектов.

Атрибуты событий

Для атрибутов, связанных с событиями, в XAML 2006 предполагается, что используется компиляция разметки, поэтому события подаются на компиляцию разметки. XAML 2009 поддерживает форму разметки, схожую с расширением разметки. Она дает возможность откладывать связывание событий до анализа и загрузки XAML. При этом приложения WPF и сценарии XAML для пользовательского интерфейса WPF обычно не используют эту возможность. WPF и его реализация в XAML 2006 используют сочетание связывания обработчика событий для перенаправленных событий, определенных на уровне UIElement , и этап компилятора разметки для основной обработки атрибутов событий. Компилятор разметки также выполняет предварительную обработку всех атрибутов событий, найденных в XAML, где действия сборки объявляют, что используется компилятор разметки.

См. также