Wpf richtextbox - потеря разрывов строк при копировании/вставке
Мне нужен был текстовый элемент управления, который обеспечивал бы одностороннюю функцию копирования в буфер обмена, а также возможность форматирования определенных строк и части строк, поэтому я попробовал RichTextBox. Это работает довольно хорошо. Проблема заключается в том, что я выполняю операцию копирования и вставки в буфер обмена. Все разрывы строк ('\n') удаляются, и скопированный текст запускается вместе в одной строке.
Например:
Это строка 1.
Это строка 2.
Это строка 3.
Становится:
Это строка 1.это строка 2.Это строка 3.
Текст RichTextBox заполняется из кода за очень динамичной природы того, что отображается.
// example var myDoc = new FlowDocument(); foreach (MyDataObject dObj in dataFromDatabase) { var para = new Paragraph(); para.Inlines.Add(new Run(dObj.DataPoint1.ToString())); if (dObj.DataPoint2 > 3) { para.Inlines.Add(new Run("\nThis exceeds reporting threshold for blah, blah, blah,...")); // \n or \r it doesn't matter, they are both removed in copy/paste } // and other lines as required in the program logic myDoc.Blocks.Add(para); } myRichTextBox.Document = myDoc;
Что я уже пробовал:
Я искал в интернете, как это предотвратить, но все, что я нашел, - это замена возврата каретки ('\r') на разрыв строки, но это также не сработало.
Michael_Davies
Вы нашли это;
https://www.experts-exchange.com/questions/26895919/C-RichTextBox-contents-to-clipboard.html#a35180339
Foothill
Да, я наткнулся на этот ответ, но не видел, как это решение может быть применимо. Однако третий взгляд привел меня к решению, которое я вскоре опубликую.