17

ドメイン固有言語用のテキスト エディターを作成しています。RichTextBox基本的なコントロールとしてWPF を使用しています。行番号を適切に含める方法がわかりません。誰か例を知っていますか?

4

4 に答える 4

7

AvalonEditは優れたツールであり、オープン ソースです。構文の強調表示や折りたたみなど、Aqistar コントロールのほぼすべての機能を備えていると思います。設定と使用が簡単。詳細については、こちらをご覧くださいここに画像の説明を入力

于 2011-09-20T07:05:08.363 に答える
3

RichText は、「保護された」(編集不可の) スパンをサポートします。RTF ストリームの一部として、行番号を保護されたテキスト スパンとしてダンプできます (書式設定を行う場合)。

Win Forms では、 RichTextBox.SelectionProtected Propertyを使用できます。WPF にも同様のものが必要です。

このようにして、すべてのベースラインが正しくなり、エディターを適切に動作させるために余分な思考/プログラミングを行う必要がなくなります。編集可能なテキストは編集可能になり、行番号は編集できなくなります。

唯一の欠点は、編集のたびに RTF ストリームを再送信する必要があることです。しかし、解析フォーマット/エラー診断/その他を提供するために、すでにこれを行っていると思います。

于 2009-02-19T22:15:01.553 に答える
3

行番号を処理するために使用するスタック パネル コントロールと左側のテキスト ブロックを使用して、複合コントロールを作成します。行数が気になり、視覚要素が多すぎる場合は、仮想モードで ListBox を使用できます。

ListBox をいつ更新し、各行の高さを計算するかを知るために、RichTextBox のさまざまなイベントに接続する必要がありますが、これは RichTextBox に添付された FlowDocument で実行できるはずです。

于 2009-02-19T22:08:52.130 に答える
2

AqiStar のリッチ テキスト WPF コントロールを使用してみませんか? AqiStar.TextBox

私は彼らのために働いていません...私はOrenが彼のNHibernate Profiler (NHProf)でこの製品を使用していることを知っていて、彼はそれを掘り下げているようです.

于 2009-02-19T22:20:54.303 に答える