【发布时间】:2022-01-24 13:42:04
【问题描述】:
在代码中,我将格式化文本生成到 WPF RichTextBox 中。我使用 Environment.NewLine 插入换行符。一切看起来都很好。但是,当我将 RichTextBox 的内容复制到剪贴板(使用 RichTextBox 上下文菜单)并将其粘贴到 Word 或写字板中时,换行符消失了。但是,如果我将剪贴板的内容粘贴为纯文本(例如,粘贴到记事本中),新行不会消失。不知道为什么会这样?
更新:
// _richTextBox is my object RichTextBox
var doc = _richTextBox.Document;
var paragraph = doc.Blocks.FirstOrDefault() as Paragraph;
if (paragraph == null) return;
var span = new Span();
span.Inlines.Add(new Underline(new Run($"Header: {Environment.NewLine}")));
span.Inlines.Add(new Run("Text content"));
paragraph.Inlines.Add(span);
【问题讨论】:
-
不确定,但是否因为
\r\nvs\n问题?根据docs.microsoft.com/en-us/dotnet/api/…,对于Windows,它是\r\n,对于Unix,它是\n。 -
也许你可以提供一些代码。另外,请检查此stackoverflow.com/a/4624392/4688321。
-
Environment.NewLine 在我的操作系统(Win 10)
\r\n上插入,应该是正确的。 -
@kiner_shah 我为你添加了代码。我也看了推荐的帖子。不幸的是,这并不能解决我的问题。我想知道为什么原生 RichTextBox 复制到剪贴板功能在粘贴到 Word 文档时不插入换行符。
-
它似乎不是minimal reproducible example,因为缺少某些部分,例如
doc是什么?你在哪里复制到剪贴板等?
标签: c# wpf richtextbox