【发布时间】:2017-07-26 00:07:13
【问题描述】:
我正在使用 Visual Studio 2015、C#、WPF、XAML。
我将文本从RichTextBox 复制到string 并删除任何LineBreaks。
如果您按Shift+Enter,则会出现LineBreak。但只是Enter 会导致Double LineBreak。
Double LineBreak 之后的任何文本都会从TextRange 中截断并复制到string。
这是什么Double LineBreak,如何删除?
XAML
<RichTextBox x:Name="rtbMessage" Margin="10,10,10,50" />
C#
Paragraph p = new Paragraph();
// Get RichTextBox TextRange Method
//
public String MessageRichTextBox()
{
rtbMessage.Document = new FlowDocument(p);
TextRange textRange = new TextRange(
rtbMessage.Document.ContentStart,
rtbMessage.Document.ContentEnd
);
return textRange.Text;
}
// RichTextBox to String
// Remove LineBreaks
//
string message = MessageRichTextBox().Replace(Environment.NewLine, "");
我尝试过移除:
https://stackoverflow.com/a/6750310/6806643
Regex.Replace(MessageRichTextBox(), @"[\u000A\u000B\u000C\u000D\u2028\u2029\u0085]+", string.Empty);
.Replace(Environment.NewLine, "")
.Replace("\n", "")
.Replace("\r\n", "")
.Replace("\u2028", "")
.Replace("\u000A", "")
.Replace("\u000B", "")
.Replace("\u000C", "")
.Replace("\u000D", "")
.Replace("\u0085", "")
.Replace("\u2028", "")
.Replace("\u2029", "")
【问题讨论】:
标签: c# wpf visual-studio xaml