web-dev-qa-db-ja.com

大きなコンテンツ用のWPFマルチラインテキストボックス

WPFアプリケーションで、TextBoxのように各行にメモリを再割り当てせずに、大量のテキストをストリーミングできる「ファイル内検索」出力ペインを作成したいと思います。

WPF TextBoxには、連続した文字列を格納する単一のTextプロパティがあります。コンテンツを追加するたびに、textBox.Text += "New Text"を実行する必要がありますが、これは悪いことです。

理想的には、その制御は仮想であり、目に見える線のためだけに最小限のリソースを必要とします。

標準のListBoxVirtualizingStackPanelを使用することを考えましたが、行をまたいでテキストを選択することはできません。

(新しい行が追加されるたびに、コントロールを更新したい)

なにか提案を?

18
decasteljau

アプリケーションで1万を超える検索結果が予想されない場合は、TextBlockコントロールまたは読み取り専用の複数行のTextBoxで十分です。

TextBoxクラスにはAppendText()メソッドがあり、これは十分に高速である必要があります。

テキストの強調表示/書式設定が必要な場合は、RichTextBoxを使用することをお勧めします。

17
codymanix

非常に大きなコンテンツがある場合、残念ながら、すべてのWPFテキストボックスと同様のコントロールは非常に低速です。 この質問 を参照してください。代わりに AvalonEdit を使用できます。

5
Daniel Rose

RichTextBox コントロールを検討または試しましたか?

0
Drew Noakes