Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erfahren Sie mehr über die Leerzeichenverarbeitungsregeln, wie sie von XAML verwendet werden.
Leerzeichenverarbeitung
Im Einklang mit XML sind Leerraumzeichen in XAML Leerzeichen, Zeilenfeed und Tabstopp. Diese entsprechen den Unicode-Werten 0020, 000A und 0009. Standardmäßig tritt diese Leerzeichennormalisierung auf, wenn ein XAML-Prozessor auf einen inneren Text trifft, der zwischen Elementen in einer XAML-Datei gefunden wird:
- Zeilenfeedzeichen zwischen ostasiatischen Zeichen werden entfernt.
- Alle Leerraumzeichen (Leerzeichen, Zeilenumbruch, Tabulator) werden in Leerzeichen umgewandelt.
- Alle aufeinander folgenden Leerzeichen werden gelöscht und durch ein Leerzeichen ersetzt.
- Ein Leerzeichen, das unmittelbar auf das Starttag folgt, wird gelöscht.
- Ein Leerzeichen unmittelbar vor dem Endtag wird gelöscht.
- Ostasiatische Zeichen werden als Satz von Unicode-Zeichenbereichen U+20000 bis U+2FFFD und U+30000 bis U+3FFFD definiert. Diese Teilmenge wird manchmal auch als CJK-Ideographen bezeichnet. Weitere Informationen finden Sie unter http://www.unicode.org.
"Default" entspricht dem Zustand, der durch den Standardwert des xml:space-Attributs gekennzeichnet ist.
Leerzeichen im inneren Text und String-Primitiven
Die oben genannten Normalisierungsregeln gelten für inneren Text in XAML-Elementen. Nach der Normalisierung konvertiert ein XAML-Prozessor jeden inneren Text in einen entsprechenden Typ wie folgt:
- Wenn der Typ der Eigenschaft keine Auflistung ist, aber nicht direkt ein Objekttyp ist, versucht der XAML-Prozessor, mithilfe seines Typkonverters in diesen Typ zu konvertieren. Eine fehlgeschlagene Konvertierung führt hier zu einem XAML-Analysefehler.
- Wenn der Typ der Eigenschaft eine Auflistung ist und der innere Text zusammenhängend ist (keine dazwischen liegenden Elementtags), wird der innere Text als einzelne Zeichenfolge analysiert. Wenn der Sammlungstyp " String" nicht akzeptiert, führt dies auch zu einem XAML-Parserfehler.
- Wenn der Typ der Eigenschaft "Object" lautet, wird der innere Text als einzelne Zeichenfolge analysiert. Wenn elementtags vorhanden sind, führt dies zu einem XAML-Parserfehler, da der Objekttyp ein einzelnes Objekt impliziert (String oder anderweitig).
- Wenn der Typ der Eigenschaft eine Auflistung ist und der innere Text nicht zusammenhängend ist, wird die erste Teilzeichenfolge in eine Zeichenfolge konvertiert und als Sammlungselement hinzugefügt, das dazwischen liegende Element wird als Auflistungselement hinzugefügt, und schließlich wird die nachfolgende Teilzeichenfolge (sofern vorhanden) der Auflistung als drittes String-Element hinzugefügt.
Leerraum- und Textinhaltsmodelle
In der Praxis ist die Beibehaltung von Leerzeichen nur für eine Teilmenge aller möglichen Inhaltsmodelle von Bedeutung. Diese Teilmenge besteht aus Inhaltsmodellen, die einen Singleton-String-Typ in irgendeiner Form, eine dedizierte String-Sammlung oder eine Mischung aus String und anderen Typen in Listen, Sammlungen oder Wörterbüchern annehmen können.
Selbst bei Inhaltsmodellen, die Zeichenfolgen annehmen können, ist das Standardverhalten in diesen Inhaltsmodellen, dass alle leerzeichen, die verbleiben, nicht als signifikant behandelt werden.
Beibehalten von Leerzeichen
Mehrere Techniken zur Erhaltung von Leerzeichen im Quell-XAML für die spätere Präsentation sind von der Normalisierung durch den XAML-Prozessor nicht betroffen.
xml:space="preserve": Geben Sie dieses Attribut auf der Ebene des Elements an, auf dem Leerzeichen beibehalten werden müssen. Beachten Sie, dass dadurch alle Leerzeichen beibehalten werden, einschließlich der Leerzeichen, die von Code-Editoren oder Entwurfsoberflächen hinzugefügt werden können, um Markupelemente als visuell intuitive Schachtelung auszurichten. Ob diese Leerzeichen angezeigt werden, ist eine Frage des Inhaltsmodells des umschließenden Elements. Es wird nicht empfohlen, xml:space="preserve" auf der Stammebene zu spezifizieren, da die meisten Objektmodelle Leerzeichen nicht als signifikant betrachten. Es empfiehlt sich, das Attribut nur auf der Ebene der Elemente festzulegen, die Leerzeichen innerhalb von Zeichenfolgen rendern oder Leerzeichen-signifikante Auflistungen sind.
Entitäten und geschützte Leerzeichen: XAML unterstützt das Platzieren einer Unicode-Entität innerhalb eines Textobjektmodells. Sie können spezielle Entitäten wie geschützte Leerzeichen (in UTF-8-Codierung) verwenden. Sie können auch Rich-Text-Steuerelemente verwenden, die geschützte Leerzeichen unterstützen. Seien Sie vorsichtig, wenn Sie Entitäten verwenden, um Layoutmerkmale wie Einzüge zu simulieren, da die Laufzeitausgabe der Entitäten je nach einer größeren Anzahl von Faktoren variiert, als die allgemeinen Layouteinrichtungen, z. B. die ordnungsgemäße Verwendung von Panels und Rändern.
Windows developer