我想加載大.rtf文件並滾動到其中的特定段落。WPF Flowdocument paragraph.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加載文檔 段落。
而......沒有任何反應。有小費嗎?
我使用FlowDocumentReader來顯示我的Flowdocument。 BringIntoView在ScrollMode和PageMode中都不起作用。
通過邏輯樹直接訪問FlowDocumentReader的scrollviewer並使用它進行操作不是一個選項。我只是不知道在哪裏滾動,如果可能的話,不喜歡使用任何「黑客」。