我从一个空白的 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 开头
但是在将其渲染到控件中之后,我选择了文本开头的一部分,但在第一个字符之前似乎有一个回车换行符。
所以我的问题是它总是插入这些字符吗?
有没有办法消除这种行为,这样它就不会在文档的第一个字符之前插入任何内容?
最佳答案
您的 RichTextBox 中已有一个 block 。
您可以使用textbox.Document.Blocks.Clear();
删除它。
现在,您的第一个新段落上方将没有空间。
如果段落位于另一个元素之后,则会在其上方添加空格。
关于c# - 为什么 RichTextBox 在文档开始之前总是包含额外的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50158510/