Concernant la façon de gérer les espaces en XAML, MSDN fournit une description détaillée : http://msdn.microsoft.com/en-us/library/cc189036(v=VS.95).aspx #whitespace
Pour résumer les points importants :
Les espaces, les retours chariot et les tabulations sont tous traités comme des espaces.
Les espaces consécutifs seront fusionnés en un seul espace. Les espaces immédiatement après
Comment préserver les espaces
Ajoutez l'attribut xml:space="preserve" à l'élément
Après avoir défini cet attribut, tous les espaces de l'élément seront conservés et les espaces consécutifs ne seront ni fusionnés ni coupés les deux extrémités.
Un inconvénient de cette méthode est qu'elle conservera tous les espaces de l'élément, même si ces espaces sont générés par le formatage du code. Cela signifie que vous ne pouvez pas utiliser les touches de raccourci telles que ctrl E, F pour organiser le format du code. Une fois que vous l'aurez accidentellement organisé, il sera très difficile de le modifier.
Étant donné que XAML prend en charge l'écriture directe du code Unicode, cette chaîne de code représente un espace insécable
Texte complexe
Texte avec des formats complexes, il est recommandé d'utiliser RichTextBox.
Étant donné que les éléments de texte sont divisés en bloc et en ligne, TextBlock permet uniquement de contenir des éléments en ligne, il est donc plus adapté à l'affichage d'une petite quantité de texte.
Si le format est plus complexe, veillez à utiliser span. La différence entre span et run est que span n'héritera pas du format de l'élément parent, ce qui équivaut à réinitialiser le format et n'est pas affecté par le format de l'élément parent.
* Saut de ligne
La saisie d'un retour chariot en XAML sera traitée comme un espace et tous les sauts de ligne doivent utiliser
De plus, deux Runs sont adjacents. S'ils sont disposés comme suit :
<Run>ab</Run> <Run>cd</Run>
, il sera affiché comme :
ab cd
, et un caractère de nouvelle ligne sera affiché. automatiquement ajouté entre les deux Runs.
Si vous souhaitez supprimer le retour chariot et l'afficher en abcd, vous devez l'écrire sur une seule ligne :
<Run>ab</Run><Run>cd</Run>
* Tabulation
Tout d'abord, il n'y a pas de tabulation en XAML, vous ne pouvez utiliser que des espaces continus.
Il convient de noter que lors de l'attribution d'une chaîne à l'attribut Xaml de RichTextBox, les espaces continus seront fusionnés. Par conséquent, si vous souhaitez conserver les tabulations (espaces continus), vous devez effectuer une telle solution de contournement :
<. 🎜>
private const string TAB = " "; private const string TAB_PLACEHOLDER = "===TAB==="; textBox1.Text = richTextBox1.Xaml; string xaml = richTextBox1.Xaml; xaml = xaml.Replace(TAB, TAB_PLACEHOLDER); richTextBox2.Xaml = xaml; foreach (Block block in richTextBox2.Blocks) { foreach (Inline inline in ((Paragraph)block).Inlines) { ((Run)inline).Text = ((Run)inline).Text.Replace(TAB_PLACEHOLDER, TAB); } }
Remplacez ensuite l'espace réservé. Lorsque la valeur est attribuée et remplacée, elle ne sera pas fusionnée.
=============================================== === ===
XAML est lié par les règles XML. Par exemple, XML a une signification particulière pour plusieurs caractères spéciaux, tels que &,<,>. Si vous essayez d'utiliser ces valeurs pour définir le contenu d'un élément, vous risquez d'obtenir une erreur car l'analyseur XAML suppose que vous essayez de faire quelque chose comme créer des éléments imbriqués. Vous pouvez utiliser des entités de caractères, telles que < avec <, > avec >, & avec &, "with". Les caractères spéciaux ne constituent pas un obstacle à l'exécution de XAML. Les espaces, TAB et Entrée avant et après une chaîne, ainsi que dans la chaîne, seront ignorés, ne laissant qu'un seul espace. Vous pouvez utiliser XML:space="preserve" pour conserver les espaces, les touches TAB et Entrée. Notez que ces règles ne fonctionnent que pour XAML. Si vous définissez le contenu dans le code, tout espace sera conservé.
Caractères spéciaux et espaces
Les caractères suivants sont définis comme caractères d'espacement en [XML] :
Espace ( )
Tab ( )
Entrée (
)
Saut de ligne ( )
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!