Рисование, перемещение и удаление сегментов линии в C#

В этом примере показано, как сделать программу рисования, которая позволяет рисовать, перемещать и удалять сегменты линии. Он основан на примере
Нарисуйте и переместите сегменты линии на C# . См. Этот пример для получения информации о том, как программа позволяет рисовать и перемещать сегменты линии.

В этом примере добавлена возможность удалять сегмент линии, перетаскивая его в корзину. Для этого программа должна рисовать мусорную корзину и обнаруживать, когда вы перемещаете на нее сегмент.

Во время разработки я добавил файлы ресурсов мусора (PNG-файл с прозрачным фоном) к ресурсам программы. (Откройте меню «Проект» и выберите «Свойства». На вкладке «Ресурсы» откройте раскрывающееся меню «Добавить ресурс» и выберите «Добавить существующий файл».) Когда программа запускается, следующий код получает размеры мусорного контейнера.

Этот код определяет переменные TrashWidth и TrashHeight. Обработчик события Load формы устанавливает эти значения в размеры мусора, умноженные на масштабный коэффициент.

Обработчик событий PaintBox Paint рисует текущие сегменты строк, как в предыдущем примере. Затем он использует следующий код для рисования корзины в верхнем левом углу.

Этот код просто создает прямоугольник в верхнем левом углу PictureBox, который имеет необходимые размеры мусорного ящика. Затем он вызывает e.DrawImage для рисования корзины.

Последний и самый интересный фрагмент нового кода удаляет сегмент, когда пользователь бросает его в корзину.

Когда вы перетаскиваете сегмент в новое место и затем отпустите мышь, выполняется следующий обработчик событий. Новый код отображается синим цветом.

Этот код сбрасывает обработчики событий PictureBox для ситуации, когда пользователь ничего не перетаскивает. Затем новый код определяет, находится ли мышь над корзиной. Если это так, программа запрашивает у пользователя, следует ли удалять сегмент линии. Если пользователь нажимает «Да», программа удаляет точки, которые определяют сегмент, который был перетащен.

Источник: http://csharphelper.com/blog/2015/01/draw-move-delete-line-segments-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *