Нарисуйте закругленные прямоугольники в C#

Библиотека GDI + предоставляет множество методов для рисования фигур, таких как прямоугольники, эллипсы, линии и дуги. К сожалению, он не обеспечивает метод рисования прямоугольников с закругленными углами. Вы можете использовать ручку с атрибутом LineJoin, установленным в Rounded, но это слегка округляет углы.

В этом примере определяется следующий метод MakeRoundedRect. Он возвращает объект GraphicsPath, представляющий строки и дуги, необходимые для рисования прямоугольника с закругленными углами. Параметры позволяют определить, какие углы округлены и на сколько.

Метод создает GraphicsPath, а затем добавляет к нему дуги и строки. Основной подход - повторить два шага четыре раза.

В шаге 1 код рисует верхний левый угол прямоугольника. Метод определяет, должен ли он округлить верхний левый угол прямоугольника. Если это так, код добавляет дугу, представляющую этот угол, и устанавливает point1 в положение, в котором заканчивается дуга. Это точка, где должна начинаться верхняя сторона прямоугольника.

Если код не должен находиться в верхнем левом углу, код устанавливает point1 в верхний левый угол прямоугольника. Это позиция, в которой верхняя сторона прямоугольника должна начинаться, если угол не закруглен.

На шаге 2 код рисует верхнюю сторону прямоугольника. Для этого он определяет, следует ли округлить верхний правый угол и установить point2 соответствующим образом. Затем он добавляет строку, соединяющую point1 и point2 с GraphicsPath.

Метод повторяет эти два шага для других трех углов прямоугольника и возвращает GraphicsPath.

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

Источник: http://csharphelper.com/blog/2016/01/draw-rounded-rectangles-in-c/

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

Add a Comment

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