共通の XAML 言語プリミティブの組み込み型
XAML 2009 では、いくつかのデータ型に対する XAML 言語をサポートします。これらのデータ型は、共通言語ランタイム (CLR: Common Language Runtime) およびその他のプログラミング言語でよく使用されているプリミティブです。 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 マークアップの言語プリミティブにおける以前の技術
以前の WPF バージョンの XAML では、.NET Framework の CLR プリミティブ定義クラスを含むアセンブリと名前空間をマッピングすることによって、CLR 言語プリミティブを参照していました。 これらの大半は 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 言語要素は、実際のマークアップで一般的にこのように使用されます。 WPF の XAML の概念ドキュメントや 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に対応しています。
文字列型および char 型は、XML レベルでファイルの全体的なエンコーディングと相互作用しています。 XAML 言語仕様の定義については、[MS-XAML] セクション 7.2.7 および 7.4.1 を参照してください。
x:String
CLR バッキングの場合は、 x:String
プリミティブは Stringに対応しています。
文字列型および char 型は、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 言語仕様の定義については、[MS-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に対応しています。
プロトコルのチェックは、 x:Uri
の XAML 定義の一部ではありません。
XAML 言語仕様の定義については、[MS-XAML] セクション 7.2.15 および 7.4.9 を参照してください。
x:Byte
CLR バッキングの場合は、 x:Byte
プリミティブは Byteに対応しています。 Byte / x:Byte
は符号なしとして扱われます。
XAML 言語仕様の定義については、[MS-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 に限定されます。 WPF 向けにマークアップ コンパイルされた XAML、および XAML の BAML 形式は、現在、XAML 2009 のキーワードと機能をサポートしていません。
WPF と共に XAML 2009 の機能を使用できるシナリオとして、Loose XAML を作成し、その XAML を XamlReader.Loadを使用して WPF ランタイムとオブジェクト グラフに読み込む場合があります。 WPF System.Windows.Markup.XamlReader およびその Load は、XAML 2009 言語キーワードおよび機能を有効なオブジェクト グラフ表現に処理することができます。
.NET Desktop feedback