FlowDocumentReader 内のドキュメントの位置を保存して復元し、ブックマーク機能を作成しようとしています。一般にアクセス可能なシークまたは検索機能が組み込まれていないように見えるため、次のオプションが残されています。
代わりに FlowDocumentPageViewer を使用して、ウィンドウのサイズが変更されるたびにページを保存し、アプリがリロードされるとすぐに復元します。
FlowDocumentReader の Document プロパティ内のすべての要素をループして、画面上のヒット テストに合格した最初の要素を探し、リフレクションを使用して内部検索機能を使用し、後でそのテキストをビューに戻します。
コントロール全体をシリアル化します。
独自のドキュメント ビューアー コントロールを記述します。
No. 1 は面倒です。FlowDocumentReader の 2 ページとスクロール表示オプションを放棄しなければならないからです。また、ユーザーがウィンドウのサイズを変更する前に、保存されたページをシークすることも意味します。これは壊れやすく、ユーザーがセッション間で解像度を切り替えたと言うと、おそらく壊れるでしょう。
No. 2 は派手なハックで、おそらく機能しますが、遅くなり、内部が変更されると完全に壊れてしまいます。
No. 3 は私の最善の策のように見えますが、現在の位置を保存/復元することしかできず、任意のブックマークを設定することはできません。
No. 4 はやりすぎです。これらのコントロールは非常に素晴らしいです。この 1 つの機能だけが必要です...
これについて他に方法はありますか?