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


Встроенные типы для примитивов языка XAML

В XAML 2009 появилась поддержка уровня языка XAML для некоторых типов данных, которые являются часто используемыми примитивами в среде CLR и в других языках программирования. В XAML 2009 добавлена поддержка следующих примитивов: x:Object, x:Boolean, x:Char, x:String, x:Decimal, x:Single, x:Double, x:Int16, x:Int32, x:Int64, x:TimeSpan, x:Uri, x:Byteи x:Array

Предыдущие способы использования примитивов языка в разметке XAML

В XAML для предыдущих версий WPF можно было ссылаться на примитивы языка среды CLR путем сопоставления сборки и пространства имен, содержащего класс определения примитивов CLR для платформы .NET Framework. Большинство из них содержатся в сборке mscorlib и пространстве имен System . Например, чтобы использовать Int32, можно объявить следующее сопоставление (с показанным ниже примером использования):

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <Application.Resources>
    <sys:Int32 x:Key="intMeaning">42</sys:Int32>
  </Application.Resources>
</Application>

Примитивы языка XAML 2009

По соглашению примитивы языка XAML и все остальные элементы языка XAML отображаются с префиксом x: . Таким образом, элементы языка XAML обычно используются в реальной разметке. Это соглашение соблюдается в основной документации по XAML в WPF, а также в спецификации XAML.

x:Object

Для резервирования CLR примитив x:Object соответствует Object.

Этот примитив обычно не используется в разметке приложения, но может быть полезен в некоторых сценариях, таких как проверка возможности назначения в системе типов XAML.

x:Boolean

Для резервирования CLR примитив x:Boolean соответствует Boolean.

XAML анализирует значения x:Boolean без учета регистра. Обратите внимание, что x:Bool не является допустимой альтернативой. Определение спецификации языка XAML см . в разделах [MS-XAML] 7.2.17 и 7.4.11.

x:Char

Для резервирования CLR примитив x:Char соответствует Char.

Строковые и символьные типы взаимодействуют со всей кодировкой файла на уровне XML. Определение спецификации языка XAML см. в разделах [MS-XAML] 7.2.7 и 7.4.1.

x:String

Для резервирования CLR примитив x:String соответствует String.

Строковые и символьные типы взаимодействуют со всей кодировкой файла на уровне XML. Определение спецификации языка XAML см. в разделах [MS-XAML] 7.2.6.

x:Decimal

Для резервирования CLR примитив x:Decimal соответствует Decimal.

Синтаксический анализ XAML изначально выполняется в соответствии с en-US языком и региональными параметрами. В рамках языка и региональных параметров en-US правильным разделителем компонентов десятичного числа всегда является точка (.), независимо от региональных параметров среды разработки или конечного клиентского компьютера, на котором во время выполнения загружается XAML.

Определение спецификации языка XAML см. в разделах [MS-XAML] 7.2.14 и 7.4.8.

x:Single

Для резервирования CLR примитив x:Single соответствует Single.

Помимо числовых значений текстовый синтаксис для x:Single также позволяет использовать токены Infinity, -Infinityи NaN. Эти токены обрабатываются с учетом регистра.

x:Single может поддерживать значения в экспоненциальном представлении, если первый символ в текстовом синтаксисе e или E.

Определение спецификации языка XAML см. в разделах 7.2.8 и 7.4.2.

x:Double

Для резервирования CLR примитив x:Double соответствует Double.

Помимо числовых значений текстовый синтаксис для x:Double позволяет использовать токены Infinity, -Infinityи NaN. Эти токены обрабатываются с учетом регистра.

x:Double может поддерживать значения в экспоненциальном представлении. Чтобы представить часть экспоненты, используйте символ e или E .

Определение спецификации языка XAML см. в разделах [MS-XAML] 7.2.9 и 7.4.3.

x:Int16

Для резервирования CLR примитив x:Int16 , соответствующий Int16 и x:Int16 , обрабатывается как имеющий знак. В XAML отсутствие знака плюс (+) в текстовом синтаксисе означает положительное значение.

Определение спецификации языка XAML см. в разделах [MS-XAML] 7.2.11 и 7.4.5.

x:Int32

Для резервирования CLR примитив x:Int32 соответствует Int32. x:Int32 рассматривается как имеющий знак. В XAML отсутствие знака плюс (+) в текстовом синтаксисе означает положительное значение.

Определение спецификации языка XAML см. в разделах [MS-XAML] 7.2.12 и 7.4.6.

x:Int64

Для резервирования CLR примитив x:Int64 соответствует Int64. x:Int64 рассматривается как имеющий знак. В XAML отсутствие знака плюс (+) в текстовом синтаксисе означает положительное значение.

Определение спецификации языка XAML см. в разделах [MS-XAML] 7.2.13 и 7.4.7.

x:TimeSpan

Для резервирования CLR примитив x:TimeSpan соответствует TimeSpan.

Анализ XAML для формата даты времени изначально выполняется в соответствии en-US с языком и региональными параметрами.

Определение спецификации языка XAML см. в разделах [MS-XAML] 7.2.16 и 7.4.10.

x:Uri

Для резервирования CLR примитив x:Uri соответствует Uri.

Проверка протоколов не является частью определения XAML для x:Uri.

Определение спецификации языка XAML см. в разделах [MS-XAML] 7.2.15 и 7.4.9.

x:Byte

Для резервирования CLR примитив x:Byte соответствует Byte. A Byte / x:Byte обрабатывается как неподписанный.

Определение спецификации языка XAML см. в разделах 7.2.10 и 7.4.4.

x:Array

Для резервирования CLR примитив x:Array соответствует Array.

Можно определить массив в XAML 2006 г. с помощью синтаксиса расширения разметки; однако синтаксис XAML 2009 является определенным языком примитивом, которому не требуется доступ к расширению разметки. Дополнительные сведения о поддержке XAML 2006 см. в разделе x:Array Markup Extension.

Определение спецификации языка XAML см. в разделах [MS-XAML] 7.2.18.

Поддержка WPF

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

Сценарий, где можно использовать возможности XAML 2009 вместе с WPF, если разработчик выпустил свободный XAML, а вы затем загрузили этот XAML в среду выполнения WPF и граф объектов с XamlReader.Load. System.Windows.Markup.XamlReader WPF и его Load может обрабатывать ключевые слова языка XAML 2009 и компоненты в правильное представление графа объектов.