如何获取RichTextBox的行数

时间:2019-08-29 18:57:06

标签: c# wpf richtextbox

是否有一种简单的方法可以为TextBox.LineCount模拟RichTextBox?我一直在寻找其他帖子和解决方案,但它们已经过时了。

其他帖子:

Richtextbox lines count

How many Lines in RichTextBox

2 个答案:

答案 0 :(得分:2)

从控件中获取文本,并使用Environment.NewLine分隔符将其拆分为一个数组,然后可以检查数组的长度以获取行数。

private void button_Click(object sender, RoutedEventArgs e)
{
    TextRange MyText = new TextRange(
    richTextBox1.Document.ContentStart,
    richTextBox1.Document.ContentEnd
     );

    string[] splittedLines = MyText.Text.Split(new[] { Environment.NewLine }
                                  , StringSplitOptions.None); // or StringSplitOptions.RemoveEmptyEntries

    MessageBox.Show(splittedLines.Length.ToString());
}

答案 1 :(得分:1)

如果我正确理解,则需要行数,包括由于自动换行而呈现多行的情况。在这种情况下,您需要计算richtextbox文本中换行的频率,再加上richtextbox宽度中的因子以检测自动换行。