Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Découvrez les règles de traitement d’espace blanc utilisées par XAML.
Traitement de l’espace blanc
Conformément au code XML, les espaces blancs en XAML sont des espaces, un flux de lignes et un onglet. Ces valeurs correspondent respectivement aux valeurs Unicode 0020, 000A et 0009. Par défaut, cette normalisation d’espace blanc se produit lorsqu’un processeur XAML rencontre tout texte interne trouvé entre des éléments dans un fichier XAML :
- Les caractères de flux de lignes entre les caractères d’Asie de l’Est sont supprimés.
- Tous les caractères d'espacement (espace, retour à la ligne, onglet) sont transformés en espaces.
- Tous les espaces consécutifs sont supprimés et remplacés par un espace.
- Un espace immédiatement après la balise de début est supprimé.
- Un espace situé immédiatement avant la balise de fin est supprimé.
- Les caractères d’Asie orientale sont définis comme un ensemble de plages de caractères Unicode U+20000 à U+2FFFD et U+30000 à U+3FFFD. Ce sous-ensemble est également parfois appelé idéogrammes CJK. Pour plus d’informations, consultez http://www.unicode.org.
« Default » correspond à l’état indiqué par la valeur par défaut de l’attribut xml :space .
Espaces blancs dans le texte interne et primitives de chaîne
Les règles de normalisation ci-dessus s’appliquent au texte interne dans les éléments XAML. Après la normalisation, un processeur XAML convertit tout texte interne en un type approprié comme suit :
- Si le type de la propriété n’est pas une collection, mais n’est pas directement un type Object , le processeur XAML tente de le convertir en ce type à l’aide de son convertisseur de type. Une conversion ayant échoué ici entraîne une erreur d’analyse XAML.
- Si le type de la propriété est une collection et que le texte interne est contigu (aucune balise d’élément intermédiaire), le texte interne est analysé sous la forme d’une chaîne unique. Si le type de collection ne peut pas accepter String, cela entraîne également une erreur d’analyseur XAML.
- Si le type de la propriété est Object, le texte interne est analysé sous la forme d’une chaîne unique. S’il existe des balises d’élément intermédiaires, cela entraîne une erreur d’analyseur XAML, car le type d’objet implique un objet unique (String ou sinon).
- Si le type de la propriété est une collection et que le texte interne n’est pas contigu, la première sous-chaîne est convertie en chaîne et ajoutée en tant qu’élément de collection, l’élément intermédiaire est ajouté en tant qu’élément de collection, et enfin la sous-chaîne de fin (le cas échéant) est ajoutée à la collection en tant que troisième élément String .
Modèles de contenu d’espace blanc et de texte
Dans la pratique, la préservation de l’espace blanc concerne uniquement un sous-ensemble de tous les modèles de contenu possibles. Ce sous-ensemble est composé de modèles de contenu qui peuvent prendre un type singleton String d'une manière, une collection String dédiée ou un mélange de String et d’autres types dans des listes, des collections ou des dictionnaires.
Même pour les modèles de contenu qui peuvent prendre des chaînes, le comportement par défaut dans ces modèles de contenu est que tout espace blanc qui reste n’est pas traité comme significatif.
Conservation de l’espace blanc
Plusieurs techniques de conservation de l’espace blanc dans le code XAML source pour la présentation éventuelle ne sont pas affectées par la normalisation des espaces blancs du processeur XAML.
xml:space="preserve": spécifiez cet attribut au niveau de l’élément où l’espace blanc doit être conservé. Notez que cela préserve tous les espaces blancs, y compris ceux que les éditeurs de code ou les interfaces de conception peuvent ajouter pour aligner les éléments de balisage de manière intuitive et visuellement organisée. Que ces espaces soient rendus dépend encore du modèle de contenu de l'élément conteneur. Nous vous déconseillons de spécifier xml:space="preserve" au niveau racine, car la majorité des modèles objet ne considèrent pas les espaces blancs comme significatifs d’une façon ou d’une autre. Il est préférable de définir uniquement l’attribut spécifiquement au niveau des éléments qui restituent des espaces blancs dans des chaînes ou sont des collections significatives d’espaces blancs.
Entités et espaces non décassants : XAML prend en charge le placement d’une entité Unicode dans un modèle objet texte. Vous pouvez utiliser des entités dédiées telles que l’espace insécable (dans l’encodage UTF-8). Vous pouvez également utiliser des contrôles de texte enrichi qui prennent en charge les caractères d’espace non cassants. Soyez prudent si vous utilisez des entités pour simuler des caractéristiques de mise en page telles que des retraits, car la sortie à l'exécution des entités varie en fonction de davantage de facteurs que les fonctionnalités de mise en page générales, telles que l’utilisation appropriée des panneaux et des marges.
Windows developer