Estoy recuperando texto de un archivo XML y me gustaría insertar algunas líneas nuevas que el bloque de texto interpreta como líneas nuevas.
He intentado:
<data>Foo bar baz \n baz bar</data>
Pero los datos aún se muestran sin la nueva línea. Configuré el contenido de a <data>
través de la .Text
propiedad a través de C #.
¿Qué necesito poner en el XML para que represente la nueva línea en la GUI?
Intenté algo como esto configurando manualmente el texto en el XAML:
<TextBlock Margin="0 15 0 0" Width="600">
There
is a new line.
</TextBlock>
Y aunque el carácter codificado no aparece en la GUI, tampoco me da una nueva línea.
Respuestas:
Puede intentar poner una nueva línea en los datos:
Si eso no funciona, es posible que deba analizar la cadena manualmente.
Si necesita XAML directo, eso es fácil por cierto:
fuente
XmlSerializer
las rupturas, se conservarán. En Xaml necesitas<LineBreak/>
.Para completar: también puede hacer esto:
x0A es el salto de línea hexadecimal escapado. El equivalente de \ n
fuente
También puede utilizar el enlace
Y configure MyText así:
fuente
debes usar
O si lo prefieres:
cuidado: si ambos usan & 10 Y van a la siguiente línea en su texto, tendrán DOS líneas vacías.
aquí para obtener más detalles: http://msdn.microsoft.com/en-us/library/ms788746.aspx
fuente
Aunque esta es una pregunta antigua, me encontré con el problema y lo resolví de manera diferente a las respuestas dadas. Quizás pueda ser útil para otros.
Noté que aunque mis archivos XML se veían así:
Cuando se leyó en mi código C #, la cadena tenía barras invertidas dobles.
Para solucionar este problema, escribí ValueConverter para eliminar la barra invertida adicional.
fuente
TextWrapping="Wrap"
(yAcceptsReturn="True"
si esto fuera un TextBox) en el XAML en el TextBlock, lo hizo bien, y esta debería ser la respuesta, pero solo diga que haga.Replace()
el valor que proviene de la base de datos, no es necesario un Función elegante:valueAsString = valueAsString.Replace("\\r\\n", "\r\n");
cualquier valor ingresado con la tecla Retorno se escribirá en la base de datos sin problemas; es cuando C # lo toma para mostrar el valor que causan los problemas, como señaló. Así que esto debería llamarse como carga del texto.Si todo lo demás falla, también puede usar
fuente
fuente
Usar System.Environment.NewLine es la única solución que funcionó para mí. Cuando probé \ r \ n, simplemente repitió el \ r \ n real en el cuadro de texto.
fuente
Debe asegurarse de que el bloque de texto tenga habilitada esta opción:
fuente
Inserte un "salto de línea" o un "salto de párrafo" en un RichTextBox "rtb" como este:
La única forma de obtener los elementos NewLine es insertando texto con elementos "\ r \ n" primero, y luego aplicando más código que funcione en los objetos Selection y / o TextRange. Esto asegura que los elementos de \ par se conviertan en elementos de línea, se guarden como se desee y sigan siendo correctos al volver a abrir el archivo * .Rtf. Eso es lo que encontré hasta ahora después de duros intentos. Mis tres líneas de código deben estar rodeadas de más código (con bucles) para configurar los elementos de TextPointer (.Start .End .ContentStart .ContentEnd) donde deberían ir las líneas y los descansos, lo que he hecho con éxito para mis propósitos.
fuente