GDI +: альтернативы DrawReversible для визуальных индикаторов выбора? - PullRequest
1 голос
/ 13 апреля 2009

Я искал альтернативный способ рисования индикаторов выбора для визуальных объектов (например, выделенные ребра, линии и т. Д.) без использования ControlPaint.DrawReversibleFrame и соответствующего XOR методы. Причинами этого являются нежелательные XOR-иные "артефакты", обратимость, не применимая к растровым изображениям, отсутствие контроля над фактическим визуальным видом и медлительностью.

С другой стороны, я хочу избегать перерисовки всей сцены (на самом деле карта), если пользователь решит, что хочет отменить выбор объекта или двух, потому что перерисовка может быть довольно дорогой.

Таким образом, единственная альтернатива, которую я вижу, - это реализовать некоторую базовую логику рисования непосредственно на Bitmap, но с сохранением предыдущего содержимого пикселей до их изменения. Тогда (теоретически) я смогу повторно применить старое содержимое, скажем, выбранного прямоугольника ребра, если пользователь решит отменить выбор этого ребра.

У меня вопрос: считаете ли вы, что это хорошая идея, или вы видите другие альтернативы моей проблеме (в рамках GDI +)?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 04 января 2010

Если индикатор выделения просто нарисован в верхней части невыбранного объекта, вы можете использовать два растровых изображения, нарисовать все невыбранные объекты на одном фоне и индикаторы выбора на другом и нарисовать их оба на экране.
Иначе, вы можете сделать то же самое, за исключением того, что вы визуализируете выбранные объекты, а не только индикаторы.

0 голосов
/ 26 ноября 2009

Храните прямоугольники «представляющих интерес» только в буфере за пределами экрана. И перекрасить, когда фокус потерян. , , Или, если вы можете перерисовать только ту часть, которая обычно отображается на основе данных в памяти, все будет в порядке. В противном случае кажется, что у вас есть суть этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...