Maciej Los
GraphicsPath
класс предоставляет несколько Методы (Система.Рисование.Drawing2D)[^]. Одним из них является GraphicsPath.AddRectangle Метод (Прямоугольник) (System.Рисование.Drawing2D)[^]. В нижней части страницы назначения вы найдете пример.
Если вы хотите создать кнопку с пользовательской формой, вы должны создать пользовательский класс, который наследуется от элемента управления. Видеть:
Советы по кнопкам .net от Мика Доэрти[^]
Практическое руководство: практическое руководство. | Майкрософт документы[^]
Пошаговое руководство: создание элемента управления Windows Forms, использующего преимущества функций времени разработки Visual Studio | Microsoft Docs[^]
Введение в элементы управления линиями и фигурами (Visual Studio) | Microsoft Docs[^]
Журнал кода: Shaped .NET Windows Forms[^]
Другой способ - переопределить OnPaint
метод для вашего контроля.
public class TriangleButton :Button
{
protected override void OnPaint(PaintEventArgs pevent)
{
Rectangle rect = this.ClientRectangle;
using (GraphicsPath path = new GraphicsPath())
{
// draws triangle: /_\
path.AddPolygon(new Point []{new Point(rect.X+rect.Width/2,rect.Y),new Point(rect.X,rect.Y+rect.Height),new Point(rect.X+rect.Width,rect.Y+rect.Height)});
path.CloseFigure();
this.Region = new Region(path);
pevent.Graphics.FillPath(SystemBrushes.ButtonShadow, path);
}
}
}
использование:
TriangleButton shb = new TriangleButton();
shb.Name = "ShapedButton1";
shb.Location = new Point(50, 50);
shb.Parent = this; //form
Удачи вам!
Goran Bibic
Его работа...радиус угла?
GraphicsPath grPath = новый GraphicsPath();
Rectangle rect = новый прямоугольник(0, 0, 128,128);
grPath.AddRectangle(прямоугольник);
этот.Регион = Новая система.Рисование.Регион(grPath);
база.OnPaint(e);