我正在开发 Windows Phone 8.1 应用程序,但遇到了这个问题:
我有一个RichTextBlock
保存我的文本的控件,如果我的控件高度大于我的屏幕,我需要在用户阅读文本时自动逐行滚动。
有什么方法可以确定我RichTextBlock
或几何计算中的线数是唯一的方法吗?
我试图遍历 Blocks 集合,但似乎没有什么相关的。
我唯一带来的是使用TextPointer.GetCharacterRect
函数:
if(msgContainer.Blocks.Any())
{
var item = msgContainer.Blocks.FirstOrDefault();
var height = item.LineHeight;
var startRect = item.ContentStart.GetCharacterRect(LogicalDirection.Forward);
var lineHeight = startRect.Height;
var lineCount = (int)_fatAssTextMessage.ActualHeight / lineHeight;
}
但它不准确 - 有时它会丢失一两行,因为 int 强制转换和除法......
任何帮助将不胜感激