大きな.rtfファイルを読み込んで、その中の特定の段落までスクロールします。WPF Flowドキュメントの段落.BringIntoView()が新しいドキュメントでは機能しません。
だから私はこのような何か:
private FlowDocument GenerateDocument(string path)
{
var doc = new FlowDocument();
using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read))
{
var content = new TextRange(doc.ContentStart, doc.ContentEnd);
content.Load(fs, DataFormats.Rtf);
}
return doc;
}
をその後、私はブックマーク段落の見上げるとそこにスクロールします。このような何か:
private void ScrollToBookmark(string bookmark)
{
Paragraph p = LookUp(bookmark);
if (p != null) p.BringIntoView();
}
ルックアップは、それがうまく機能し、previosly読み込まれたドキュメント内 段落を返す、目的の段落を見つけるためfucntionです。
...何も起こりません。任意のヒント?
私はFlowDocumentReaderを使用して私のFlowdocumentを表示します。 BringIntoViewは、ScrollModeとPageModeの両方で動作していません。
論理ツリーを介してFlowDocumentReaderのスクロールビューアに直接アクセスして操作することはできません。私は単にスクロールする場所を知らず、可能ならば「ハック」を使わない方が好きです。