私は 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キャストと除算以降、1行または2行で欠落することがあります...
どんな助けでも大歓迎です