C #: Как я могу отслеживать события мыши на непрямоугольной графике, нарисованной на панели? - PullRequest
1 голос
/ 23 ноября 2010

Как отслеживать события мыши на непрямоугольной графике, нарисованной на панели?

При использовании прямоугольной графики или графики, которые могут содержаться в прямоугольной ограничительной рамке, я просто использую Rectangle.Contains. Что мне делать с непрямоугольными формами.

Ответы [ 2 ]

1 голос
/ 23 ноября 2010

Если вы создаете GraphicsPath, вы оба рисуете его (Graphics.DrawPath) и проводите тестирование с помощью GrapicsPath.IsVisible. Если рисунок свернут с перекрывающимися слоями краски, то вы можете рисовать на экране, а также в виде растрового изображения. При последнем использовании значения цвета указывают конкретные объекты. Проверка попадания с помощью GetPixel ().

1 голос
/ 23 ноября 2010

Вы можете использовать Регион для рисования графики и проверки удара. Нажмите кнопку проверки точки в регионе: Region.IsVisible (PointF)

См. http://www.java2s.com/Code/CSharp/2D-Graphics/IsapointvisibletoaRegion.htm

...