Информация об изменениях

Сообщение как на .NET ( желательно WPF ) быстро рисовать много текста от 19.06.2020 20:29

Изменено 19.06.2020 20:35 okon

как на .NET ( желательно WPF ) быстро рисовать много текста
Да есть уже какие-то контролы сторонние типа AvalonEdit, есть FlowDocument и пр.

Но бывают задачи не совсем стандартные когда нельзя воспользоваться подобными решениями и нужно делать свою логику.
Например вы хотите сделать инструмент аналог Merge , т.е. где сравниваются два текстовых файла со своей логикой разметки, подстветки и UI для мержа внутри контролов.

Решение в лоб — брать канвас и на нем рисовать текст работает очень медленно особенно на больших экранах.
Можно ли достичь производительности редактора Visual Studio , IDEA и др.
Или такие вещи только на С++ делаются.
как на .NET ( желательно WPF ) быстро рисовать много текста
Да есть уже какие-то контролы сторонние типа AvalonEdit, есть FlowDocument и пр.

Но бывают задачи не совсем стандартные когда нельзя воспользоваться подобными решениями и нужно делать свою логику.
Например вы хотите сделать инструмент аналог Merge , т.е. где сравниваются два текстовых файла со своей логикой разметки, подстветки и UI для мержа внутри контролов.

Решение в лоб — брать канвас и на нем рисовать текст работает очень медленно особенно на больших экранах.
Можно ли достичь производительности редактора Visual Studio , IDEA и др.
Или такие вещи только на С++ делаются.

p.s. про кеширование в битмеп думал но это работает только если нет скроллинга.
Когда начинается скроллинг то приходится перерисовывать весь экран учитываем что скроллинг часто не плавный ( там можно перерисовать только новую часть )