Наложение «точки» на изображение при клике - PullRequest
1 голос
/ 30 сентября 2010

Я пытаюсь написать простую программу, которая позволяет мне наложить точку поверх изображения при нажатии на изображение. Я могу сохранить данные X и Y обратно в свою базу данных, но тогда я захочу иметь возможность вызвать эту информацию позже и снова наложить точки с помощью кода, в отличие от того момента, когда пользователь впервые щелкнул изображение.

Я дошел до захвата X и Y щелчка без проблем, но у меня возникают проблемы с поиском примеров специально для того, что я пытаюсь сделать. Кажется, что все примеры в Интернете предназначены для сохранения изображения с добавленной графикой, но мне не нужно этого делать, поскольку каждый раз это будет одно и то же изображение.

Как только я смогу это сделать, мне также нужно найти способ, которым я могу определить, в какой области изображения щелкнули. Области, которые мне нужно выделить, различаются по форме и размеру, поэтому мне нужно попытаться найти способ «нанести на карту» эти области, а затем сопоставить их с координатами кликов пользователей (я предполагаю, что мне может понадобиться какая-нибудь умная геометрия для этого?)

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

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

1 Ответ

1 голос
/ 30 сентября 2010

Для этого вы можете использовать пространство имен System.Drawing.

Создание элемента управления и переопределение OnPaint и OnPaintBackground. Храните ваши клики в списке

  • В OnPaintBackground нарисуйте изображение, используя DrawImageUnscaled, используя графический объект, который передается вам в качестве параметра.

  • В OnPaint переберите массив точек и вызовите graphics.FillElipse или подобное, чтобы нарисовать маленькую точку.

Поскольку это не графическая система с сохранением режима, вам нужно продолжать рисовать эти элементы, чтобы они не подходили для большого количества точек. В этом случае вы можете создать растровое изображение в памяти и получить графический объект рисования, используя graphics.FromImage.

...