XAML und Leerzeichen
Erfahren Sie mehr über die Leerzeichenverarbeitungsregeln, wie sie von XAML verwendet werden.
Leerzeichenverarbeitung
Im Einklang mit XML sind Leerzeichen in XAML Leerzeichen, Zeilenfeed und Tabstopp. Diese entsprechen den Unicode-Werten 0020, 000A bzw. 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:
- Zeilenvorschubzeichen zwischen ostasiatischen Zeichen werden entfernt.
- Alle Leerraumzeichen (Leerzeichen, Zeilenvorschub, Tabulator) werden in Leerzeichen konvertiert.
- Alle aufeinander folgenden Leerzeichen werden gelöscht und durch ein Leerzeichen ersetzt.
- Ein Leerzeichen unmittelbar nach dem Starttag 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.
„Standard“ entspricht dem Zustand, der durch den Standardwert des xml:space -Attribut bezeichnet wird.
Leerzeichen im inneren Text und Zeichenfolgengrundtypen
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.
Leerzeichen und Textkon Zelt-Modus ls
In der Praxis ist die Erhaltung von Leerzeichen nur für eine Teilmenge aller möglichen Con Zelt-Modus ls von Bedeutung. Diese Teilmenge besteht aus Con Zelt-Modus ls, die einen Singleton String-Typ in irgendeiner Form, eine dedizierte String-Auflistung oder eine Mischung aus String und anderen Typen in Listen, Auflistungen oder Wörterbüchern annehmen können.
Sogar für Inhaltsmodelle, die Zeichenfolgen unterstützen, besteht das Standardverhalten innerhalb dieser Inhaltsmodelle darin, dass alle verbleibenden Leerräume als nicht signifikant behandelt werden.
Beibehalten von Leerzeichen
Mehrere Techniken zum Beibehalten von Leerzeichen im Quell-XAML für die spätere Präsentation sind von der NORMALisierung des XAML-Prozessors 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 wieder gerendert werden, ist eine Frage der Con Zelt-Modus l für das enthaltende Element. Es wird nicht empfohlen, dass Sie auf der Stammebene angeben xml:space="preserve"
, da die meisten Objektmodelle leerzeichen nicht als signifikant betrachten. Es ist besser, das Attribut nur auf der Ebene von Elementen spezifisch festzulegen, die Leerräume in Zeichenfolgen rendern oder leeraumsignifikate Auflistungen sind.
Entitäten und geschützte Leerzeichen: XAML unterstützt das Platzieren einer Unicode-Entität innerhalb eines Textobjektmodells. Sie können dedizierte Entitäten wie geschütztes 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.