Re[2]: как на .NET ( желательно WPF ) быстро рисовать много
От: okon  
Дата: 07.07.20 13:07
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, okon, Вы писали:


O>>Да есть уже какие-то контролы сторонние типа AvalonEdit, есть FlowDocument и пр.

С>FlowDocument адски тормозит. Я делал печать в XPS и просмотрщик этого формата заметно задумывался при скроллинге. Может конечно я неправильно с форматом обращался, но по-моему, всё было сделано просто по руководству из книжки по WPF.

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


С>Для своего аналога merge я бы сделал нечто вроде двух виртуальных списков слева и справа. Скорллинг бы замещал элементы в списке, но сам список был бы размером с окно, а не прокручивался внутри окна.


Возможно я не совсем понял идею — но зачем замещать элементы — чем это будет отличаться от рисования на 1 элементе который называется экран. или панель справа, панель слева.
Т.е. условно


алгоритм А

заливаем область панели цветом фона 
для каждой строки
   рисуем текст строки


Алгоритм Б

разбиваем панель на строки
для каждой строки
    заливаем область строки цветом фона
    рисуем текст строки



по мне это столько же текста придется рисовать — т.е. рисовать текст на весь экран.
поможет копирование и переиспользование элемента при скроллинге ( без повторного рисования текста ), но это поможет только при плавном построчном скроллинге,
если будет что-то типа PageUp/Down когда ранее отрисованные строки будут всегда не актуальны то придется перерисовывать весь экран.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Отредактировано 07.07.2020 13:13 okon . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.