Сообщение как на .NET ( желательно WPF ) быстро рисовать много текста от 19.06.2020 20:29
Изменено 19.06.2020 20:35 okon
как на .NET ( желательно WPF ) быстро рисовать много текста
Да есть уже какие-то контролы сторонние типа AvalonEdit, есть FlowDocument и пр.
Но бывают задачи не совсем стандартные когда нельзя воспользоваться подобными решениями и нужно делать свою логику.
Например вы хотите сделать инструмент аналог Merge , т.е. где сравниваются два текстовых файла со своей логикой разметки, подстветки и UI для мержа внутри контролов.
Решение в лоб — брать канвас и на нем рисовать текст работает очень медленно особенно на больших экранах.
Можно ли достичь производительности редактора Visual Studio , IDEA и др.
Или такие вещи только на С++ делаются.
Но бывают задачи не совсем стандартные когда нельзя воспользоваться подобными решениями и нужно делать свою логику.
Например вы хотите сделать инструмент аналог Merge , т.е. где сравниваются два текстовых файла со своей логикой разметки, подстветки и UI для мержа внутри контролов.
Решение в лоб — брать канвас и на нем рисовать текст работает очень медленно особенно на больших экранах.
Можно ли достичь производительности редактора Visual Studio , IDEA и др.
Или такие вещи только на С++ делаются.
как на .NET ( желательно WPF ) быстро рисовать много текста
Да есть уже какие-то контролы сторонние типа AvalonEdit, есть FlowDocument и пр.
Но бывают задачи не совсем стандартные когда нельзя воспользоваться подобными решениями и нужно делать свою логику.
Например вы хотите сделать инструмент аналог Merge , т.е. где сравниваются два текстовых файла со своей логикой разметки, подстветки и UI для мержа внутри контролов.
Решение в лоб — брать канвас и на нем рисовать текст работает очень медленно особенно на больших экранах.
Можно ли достичь производительности редактора Visual Studio , IDEA и др.
Или такие вещи только на С++ делаются.
p.s. про кеширование в битмеп думал но это работает только если нет скроллинга.
Когда начинается скроллинг то приходится перерисовывать весь экран учитываем что скроллинг часто не плавный ( там можно перерисовать только новую часть )
Но бывают задачи не совсем стандартные когда нельзя воспользоваться подобными решениями и нужно делать свою логику.
Например вы хотите сделать инструмент аналог Merge , т.е. где сравниваются два текстовых файла со своей логикой разметки, подстветки и UI для мержа внутри контролов.
Решение в лоб — брать канвас и на нем рисовать текст работает очень медленно особенно на больших экранах.
Можно ли достичь производительности редактора Visual Studio , IDEA и др.
Или такие вещи только на С++ делаются.
p.s. про кеширование в битмеп думал но это работает только если нет скроллинга.
Когда начинается скроллинг то приходится перерисовывать весь экран учитываем что скроллинг часто не плавный ( там можно перерисовать только новую часть )