Встроенные типы для примитивов языка 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 и компоненты в правильное представление графа объектов.
.NET Desktop feedback