2017-10-04 2 views
0

J'ai donc une chose de configuration du fichier App.config comme ceci:Pourquoi mon label ignore-t-il les nouvelles lignes (" n") provenant du fichier App.config?

<configuration> 
    <appSettings> 
     <add key="Description" value="My too long of a\n description that needs\n new lines so the entire\n thing can be seen."/> 
    </appSettings> 
</configuration> 

maintenant, au moment de l'exécution, je dois changer la propriété Text d'un Label à l'une de ces nombreuses descriptions situées dans l'App. fichier de configuration. Si j'inclue le nouveau caractère de ligne dans App.config, le Label semble ignorer qu'il s'agit d'un nouveau caractère de ligne et l'imprime littéralement. Toutefois, si je devais supprimer ces nouveaux caractères de ligne et les insérer au moment de l'exécution, le Label les reconnaîtra et insérera de nouvelles lignes comme il se doit.

Ma question est, pourquoi? Pourquoi le Label les ignore-t-il et les imprime-t-il littéralement s'ils proviennent de App.config?

Pour utiliser cette description de la App.config, c'est tout ce que je fais:

myLabel.Text = ConfigurationManager.AppSettings["Description"]; 
+1

'\ n' indique' \ xa \ xd' comme chaîne littérale en C#, mais dans ce xaml il ne reste que 2 caractères. – Sinatr

+1

Copie possible de [Ajout d'une nouvelle ligne/break en XML] (https://stackoverflow.com/questions/10917555/adding-a-new-line-break-tag-in-xml) – Sinatr

+0

Vous avez raison, il est un doublon. Merci de me l'avoir signalé! @Sinatr –

Répondre

1

Je me attends \r\n (retour, saut de ligne) sur un système Windows, et pas seulement une nouvelle ligne. Dans tous les cas, App.config est XML, de sorte que vous voulez que les séquences d'échappement XML:

&#xD;&#xA; 
1

Si vous voulez garder "\n" en XML, puis une solution facile (pour plus de clarté?):

myLabel.Text = ConfigurationManager.AppSettings["Description"].Replace("\\n","\xa\xd");