Почему в значении привязки моей многострочной TextBox есть только "\ r"? - PullRequest
0 голосов
/ 08 января 2020

У меня есть TextBox, определенный ниже:

  <TextBox x:Name="TextBoxName" 
    TextWrapping="Wrap"
    AcceptsReturn="True"
    BorderThickness="0" 
    PlaceholderText="{Binding PlaceHolderText}"
    Text="{Binding TestValue, Mode=TwoWay}" />

Когда я набираю test1, затем набираю Enter key, а затем набираю test2 в этом текстовом поле из нескольких строк, я проверяю значение TestValue и я вижу test1\rtest2. Я запутался, почему возврат отображается как \r только здесь. В windows разве это не \r\n?

Если я хочу записать test1\rtest2 в xml, могу ли я заменить \r на \n в стиле unix? Я пытался использовать это, но это не работает.

    XmlWriterSettings xws = new XmlWriterSettings();
    xws.NewLineChars = "\n";
    xws.NewLineHandling = NewLineHandling.Replace;

1 Ответ

3 голосов
/ 08 января 2020

Из этого поста упоминается, что разрывы строк (только \ r) являются заданными. Поэтому, если вы хотите заменить "\ r" на "\ n" в xml, в качестве обходного пути, вы можете сначала заменить "\ r" в текстовом поле Textbox, а затем записать его в xml.

* 1004. *

Или используйте метод Environment.NewLine , чтобы получить строку новой строки, определенную для этой среды.

if (TextBoxName.Text.Contains("\r"))
{
    text = TextBoxName.Text.Replace("\r", Environment.NewLine);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...