Integrierte Typen für häufige XAML-Sprachprimitive
In XAML 2009 wird die Unterstützung auf XAML-Sprachebene für mehrere Datentypen eingeführt, bei denen es sich um häufig verwendete Primitiven in der Common Language Runtime (CLR) und anderen Programmiersprachen handelt. In XAML 2009 wurde Unterstützung für die folgenden Primitiven hinzugefügt: 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
und x:Array
Vorherige Techniken für Sprachprimitive in XAML-Markup
In XAML für frühere WPF-Versionen konnten Sie durch die Zuordnung der Assembly und des Namespace, die eine CLR-Primitivendefinitionsklasse für .NET Framework enthielten, auf die CLR-Sprachprimitiven verweisen. Die meisten dieser Primitive befinden sich in der mscorlib-Assembly und im System -Namespace. Um beispielsweise Int32zu verwenden, konnten Sie die folgende Zuordnung deklarieren (anschließend folgt eine Beispielverwendung):
<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-Sprachprimitive
Gemäß der Konvention werden die Sprachprimitiven für XAML und alle anderen XAML-Sprachelemente mit dem x:
-Präfix angezeigt. So werden XAML-Sprachelemente in der Regel in realem Markup verwendet. Diese Konvention gilt in der Begriffsdokumentation für XAML in WPF und auch in der XAML-Spezifikation.
x:Object
Für CLR-Unterstützung entspricht die x:Object
-Primitive Object.
Dieser Primitive wird in der Regel nicht in Anwendungsmarkup verwendet, könnte aber für einige Szenarios nützlich sein, wie z. B. die Überprüfung der Zuweisungsfähigkeit in einem XAML-Typsystem.
x:Boolean
Für CLR-Unterstützung entspricht die x:Boolean
-Primitive Boolean.
Wenn XAML Werte für x:Boolean
analysiert, wird die Groß-/Kleinschreibung nicht beachtet. Beachten Sie, dass x:Bool
keine akzeptierte Alternative ist. Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitte 7.2.17 und 7.4.11.
x:Char
Für CLR-Unterstützung entspricht die x:Char
-Primitive Char.
Zeichenfolgen- und Zeichentypen verfügen über Interaktion mit der Gesamtcodierung der Datei auf XML-Ebene. Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML] Abschnitte 7.2.7 und 7.4.1.
x:String
Für CLR-Unterstützung entspricht die x:String
-Primitive String.
Zeichenfolgen- und Zeichentypen verfügen über Interaktion mit der Gesamtcodierung der Datei auf XML-Ebene. Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitt 7.2.6.
x:Decimal
Für CLR-Unterstützung entspricht die x:Decimal
-Primitive Decimal.
Die XAML-Analyse erfolgt grundsätzlich in der en-US
-Kultur. Gemäß der en-US
-Kultur ist das richtige Trennzeichen für die Bestandteile einer Dezimalzahl immer ein Punkt (.
), und zwar unabhängig von Kultureinstellungen der Entwicklungsumgebung oder dem tatsächlichen Clientziel, in das die XAML zur Laufzeit geladen wird.
Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitte 7.2.14 und 7.4.8.
x:Single
Für CLR-Unterstützung entspricht die x:Single
-Primitive Single.
Zusätzlich zu den numerischen Werten ermöglicht die Textsyntax für x:Single
auch die Infinity
-, -Infinity
- und NaN
-Token. Bei diesen Token wird die Groß-/Kleinschreibung beachtet.
x:Single
kann Werte in wissenschaftlicher Schreibweise unterstützen, wenn das erste Zeichen in der Textsyntax e
oder E
ist.
Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitte 7.2.8 und 7.4.2.
x:Double
Für CLR-Unterstützung entspricht die x:Double
-Primitive Double.
Zusätzlich zu den numerischen Werten ermöglicht die Textsyntax für x:Double
auch die Infinity
-, -Infinity
- und NaN
-Token. Bei diesen Token wird die Groß-/Kleinschreibung beachtet.
x:Double
kann Werte in wissenschaftlicher Schreibweise unterstützen. Verwenden Sie das Zeichen e
oder E
, um den Exponententeil einzuführen.
Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitte 7.2.9 und 7.4.3.
x:Int16
Für CLR-Unterstützung entspricht die x:Int16
-Primitive Int16 , und x:Int16
wird als signiert behandelt. In XAML wird das Nichtvorhandensein eines Pluszeichens (+
) in der Textsyntax als positiv signierter Wert impliziert.
Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitte 7.2.11 und 7.4.5.
x:Int32
Für CLR-Unterstützung entspricht die x:Int32
-Primitive Int32. x:Int32
wird als signiert behandelt. In XAML wird das Nichtvorhandensein eines Pluszeichens (+
) in der Textsyntax als positiv signierter Wert impliziert.
Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitte 7.2.12 und 7.4.6.
x:Int64
Für CLR-Unterstützung entspricht die x:Int64
-Primitive Int64. x:Int64
wird als signiert behandelt. In XAML wird das Nichtvorhandensein eines Pluszeichens (+
) in der Textsyntax als positiv signierter Wert impliziert.
Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitte 7.2.13 und 7.4.7.
x:TimeSpan
Für CLR-Unterstützung entspricht die x:TimeSpan
-Primitive TimeSpan.
XAML-Analyse für das Zeitdatumsformat erfolgt grundsätzlich in der en-US
-Kultur.
Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitte 7.2.16 und 7.4.10.
x:Uri
Für CLR-Unterstützung entspricht die x:Uri
-Primitive Uri.
Die Überprüfung auf Protokolle ist nicht Bestandteil der XAML-Definition für x:Uri
.
Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitte 7.2.15 und 7.4.9.
x:Byte
Für CLR-Unterstützung entspricht die x:Byte
-Primitive Byte. Ein Byte / x:Byte
wird als Wert ohne Vorzeichen behandelt.
Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitte 7.2.10 und 7.4.4.
x:Array
Für CLR-Unterstützung entspricht die x:Array
-Primitive Array.
In XAML 2006 können Sie ein Array mit einer Markuperweiterungssyntax definieren. Die XAML 2009-Syntax ist dagegen eine sprachdefinierte Primitive, die keinen Zugriff auf eine Markuperweiterung erfordert. Weitere Informationen zur Unterstützung von XAML 2006 finden Sie unter x:Array Markup Extension.
Die Definition der XAML-Sprachspezifikation finden Sie unter [MS-XAML], Abschnitt 7.2.18.
WPF-Unterstützung
In WPF können Sie XAML 2009-Funktionen verwenden, jedoch nur für XAML, das nicht markupkompiliert ist. Markupkompilierte XAML für WPF und die BAML-Form von XAML unterstützen die XAML 2009-Schlüsselwörter und -Funktionen derzeit nicht.
Ein Szenario, in dem XAML 2009-Funktionen mit WPF verwendet werden können, liegt vor, wenn Sie Loose XAML erstellen und dieses XAML dann mit XamlReader.Loadin eine WPF-Laufzeit und ein Objektdiagramm laden. Der WPF- System.Windows.Markup.XamlReader und sein Load können XAML 2009-Sprachschlüsselwörter und -Funktionen in eine gültige Objektdiagrammdarstellung verarbeiten.
.NET Desktop feedback