Пользовательский элемент управления, который я создаю, должен нарисовать много «элементов» в его клиентском пространстве.Вызов Invalidate () вызовет новый цикл рисования, при котором все элементы будут перерисованы.
Теперь, когда в элементе управления много элементов и много навигации, вещи должны быть оптимизированы;поэтому мне нужно запустить цикл рисования, где рисуется только один или два элемента.Я храню ссылки на эти элементы, чтобы метод рисования (OnPaint) знал, что он «быстрый».
Сложность состоит в том, что при выполнении OnPaint трудно определить, были ли выполнены другие вызовы Invalidate ().в это время.В этом случае это должно сделать "нормальную", полную краску.
Я использую прямоугольник клипа.Конечно, я мог проверить, стал ли прямоугольник клипа в OnPaint целым клиентским прямоугольником, признаком того, что был вызван Invalidate (), но это не на 100% безопасно.Я думал о других подобных решениях, но они кажутся хакерскими.
Как обычно или лучше всего решается эта проблема?