如何弄清楚包含在RichTextBox中的段落

时间:2014-03-30 11:39:40

标签: c# wpf richtextbox wrapping

我想减小段落的字体大小以适应RichTextBox宽度,以防止在用户键入某些文本时进行文本换行。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

一种方法是获取段落开头和结尾的起始行位置并进行比较:

TextPointer contentStart = _richTextBox.Document.ContentStart;
TextPointer contentEnd = _richTextBox.Document.ContentEnd;

while (true)
{
    var tpStart = contentStart.GetLineStartPosition(0);
    var tpEnd = contentEnd.GetLineStartPosition(0);
    var offset = tpStart.GetOffsetToPosition(tpEnd);
    if (offset != 0)
    {
        _richTextBox.FontSize -= 1; // at least two lines
    }
    else
    {
        break; // one line
    }
}