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:Byteund 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 Eist.

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.