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


x:Code — элемент директивы XAML

Обновлен: Ноябрь 2007

Позволяет помещать код внутрь страницы XAML, скомпилированной с помощью любой реализации обработчика XAML, которая компилирует XAML, а не интерпретирует.

Использование элемента объекта XAML

<object>
<x:Code>
   // code instructions, usually enclosed by CDATA...
</x:Code>
</object>

Зависимости

Атрибут x:Class также необходимо указать в родительском элементе, который отображается как object в синтаксисе, и этот элемент должен быть корневым элементом страницы. Элемент директивы x:Code должен быть непосредственным дочерним элементом корневого элемента object.

Заметки

Код внутри элемента директивы x:Code XAML по-прежнему интерпретируется в предоставленных пространствах имен XML. Таким образом, обычно требуется также заключить код в элементе x:Code внутрь сегмента CDATA.

x:Code не разрешен для всех возможных механизмов развертывания файла XAML. Код для WPF по-прежнему должен быть скомпилирован, он не интерпретируется и не используется по требованию. Например, x:Code не разрешен в любом Документ формата XPS (XML Paper Specification) или свободном XAML.

Использование правильного компилятора языка для содержимого x:Code определяется параметрами и целевыми объектами содержащего проекта, который используется для компиляции приложения.

Код, объявленный внутри x:Code, имеет несколько существенных ограничений. Код, помещенный в элемент x:Code , будет при компиляции рассматриваться как помещенный внутрь области разделяемого класса, который уже создан для этой страницы XAML. Таким образом, весь определяемый код должен относиться к членам или переменным этого разделяемого класса. Невозможно определить дополнительные классы, кроме вложенного класса внутри разделяемого класса (это допустимо, но редко используется, поскольку в XAML нельзя ссылаться на вложенные классы). Невозможно определить или добавить другие пространства имен CLR, кроме используемого для существующего разделяемого класса пространства имен. Ссылки на сущности кода за пределами пространства имен CLR разделяемого класса должны иметь полное имя. Если объявляемые члены переопределяют члены разделяемого класса, то это должно быть указано с помощью ключевого слова переопределения для конкретного языка. Если члены конфликтуют с членами разделяемого класса, созданного вне страницы XAML, и компилятор сообщает об этом, то файл XAML не будет загружен или скомпилирован.

См. также

Основные понятия

Выделенный код и XAML

Общие сведения о XAML

Ссылки

Атрибут x:Class