【问题标题】:Remove Double LineBreak from RichTextBox to String从 RichTextBox 中删除 Double LineBreak 到 String
【发布时间】: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


    【解决方案1】:

    当你检索RichTextBox这样的文字时

    public String MessageRichTextBox()
    {
        rtbMessage.Document = new FlowDocument(p);
        TextRange textRange = new TextRange(
            rtbMessage.Document.ContentStart,
            rtbMessage.Document.ContentEnd
        );
        return textRange.Text;
    }
    

    你修改了rtbMessage的内容,所以你得到了错误的内容。我假设您以某种方式引用了p 中文档的第一段,并将文档截断到那里的第一段。尝试删除rtbMessage.Document = new FlowDocument(p); 行,看看它是否适合您?

    当用户点击 Enter 时,不会插入双LineBreak,但会创建一个新的Paragraph。您可以通过尝试将插入符号放置到可能是空的行来验证它 - 如果它是双换行符,则应该有一个空行并且插入符号可以定位在其上。

    无论如何,你截图上的文档应该有 2 个这样的段落块:

    • 第 1 段:“你好,世界。”
    • 第 2 段:“这是一个测试。示例。”

    因此我的假设是,当您重新创建一个文档并尝试将其内容检索为文本时,您只保留第一个段落并丢弃其余的段落。

    【讨论】:

      猜你喜欢
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2014-08-15
      • 2012-07-02
      • 2018-10-17
      相关资源
      最近更新 更多