c# - 为什么 RichTextBox 在文档开始之前总是包含额外的字符?

标签 c# wpf

我从一个空白的 RichTextBox 开始

    <RichTextBox x:Name="textBox" HorizontalAlignment="Left" Height="234" Margin="10,75,0,0" VerticalAlignment="Top" Width="214" PreviewMouseLeftButtonUp="textBox_PreviewMouseLeftButtonUp">
    </RichTextBox>

然后我加载一个文件,读取所有文本,然后将其添加到 RichTextBox,如下所示

using (StreamReader sr = new StreamReader(@"D:\Text.txt"))
{
    string fullText = sr.ReadToEnd();

    textBox.Document.Blocks.Add(new Paragraph(new Run(fullText)));
}

当我检查插入的全文时,它看起来像这样......立即以字符 E 开头

enter image description here

但是在将其渲染到控件中之后,我选择了文本开头的一部分,但在第一个字符之前似乎有一个回车换行符。

enter image description here

enter image description here

所以我的问题是它总是插入这些字符吗?

有没有办法消除这种行为,这样它就不会在文档的第一个字符之前插入任何内容?

最佳答案

您的 RichTextBox 中已有一个 block 。 您可以使用textbox.Document.Blocks.Clear();删除它。 现在,您的第一个新段落上方将没有空间。 如果段落位于另一个元素之后,则会在其上方添加空格。

关于c# - 为什么 RichTextBox 在文档开始之前总是包含额外的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50158510/

相关文章:

wpf - DrawingVisual vs Canvas.OnRender 对许多不断变化的形状的性能

c# - 如何根据其属性更改自定义控件的背景颜色

c# - 如何在 C# 中为 ActiveMQ 队列创建队列浏览器(预览而不是使用)?

c# - Xamarin.Forms - ContextMenu 上的绑定(bind)

wpf - 在 UserControl 中设置 DataContext 会影响父级中的绑定(bind)

c# - 使用FrameworkElementFactory的目的

c# - 扩展现有接口(interface)

c# - 检测 Async/Await 的滥用 : Prevent blocking calls

c# - 生成 Sonar 属性文件失败。无法完成 SonarQube 分析

.net - 使用效果时在 WPF 中呈现问题