In a WPF application, I want to build a "Find in Files" output pane, in which I can stream large quantity of text, without re-allocating memory at each line, like the TextBox
would do.
The WPF TextBox
has a single Text
property which stores a contiguous string. Each time, I want to add content, I need to do textBox.Text += "New Text"
, which is bad.
Ideally, that control would be virtual and require a minimum of resources, just for the visible lines.
I thought about using a standard ListBox
with a VirtualizingStackPanel
, but it does not allow Text Selection across lines.
(At each new line added, I want the control to update)
Any suggestion?
If you do not expect much more than ten-thousands of search results in your application, a TextBlock control or readonly multiline TextBox will suffice by far.
The TextBox class has an AppendText() method which should be fast enough for you.
If you need text highlighting / formatting then maybe you want to use RichTextBox.