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


X:Code Встроенный тип XAML

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

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

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

Замечания

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

x:Code не допускается для всех возможных механизмов развертывания рабочей среды XAML. В определенных платформах (например, WPF) код должен быть скомпилирован. В других платформах использование x:Code обычно может быть запрещено.

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

Заметки об использовании WPF

Код, объявленный в x:Code для WPF, имеет несколько важных ограничений:

  • Элемент директивы x:Code должен быть непосредственным дочерним элементом корневого элемента рабочей среды XAML.

  • директива x:Class должна быть указана в родительском корневом элементе.

  • Код, размещенный в x:Code, будет обрабатываться компиляцией в пределах области частичного класса, который уже создан для этой страницы XAML. Поэтому все определенные коды должны быть элементами или переменными этого частичного класса.

  • Нельзя определить дополнительные классы, отличные от вложенных классов внутри частичного класса (допускается вложение, но это не обычно, так как вложенные классы нельзя ссылаться на XAML). Пространства имен СРЕДЫ CLR, отличные от пространства имен, используемого для существующего частичного класса, нельзя определить или добавить в.

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

См. также