AvalonEdit TextEditor
を特定の行にスクロールさせるのに多くの問題があります。 ScrollTo()
の動作は、その行がビューの中央にくるまでスクロールするだけです。私はインターネット上で見つかったさまざまな方法を試しましたが、オフセットを取得するのが好きです。AvalonEdit行をスクロールする
double visualTop = textEditor.TextArea.TextView.GetVisualTopByDocumentLine(line);
しかし、それぞれ独自の問題がありました。たとえば、上記の行では、私はTextView.VisualLines
で例外を取得していました。
私にとってはうまくいくが、行番号から1を引く必要がある。また、スクロールした行にキャレットオフセットを設定する方がユーザエクスペリエンスが優れていると思います。 –
これは間違いなくアプリケーションに依存しますが、私はキャレットのアイデアが気に入っています。私の場合、2つのエディタを同期させたいと思っていました(テキストファイルのデータで浮動ヘッダーを作成するようにしました)ので、自動スクロールしていたウィンドウは読み込み専用で、キャレットは必要ありませんでした。 – zaknotzach