Mam metodę, która rysuje zaokrąglony prostokąt z obramowaniem. Obramowanie może mieć dowolną szerokość, więc problem, który mam, polega na tym, że granica wykracza poza podane granice, gdy jest gruba, ponieważ jest narysowana ze środka ścieżki.Jak narysować zaokrąglony prostokąt o zmiennej szerokości obramowania wewnątrz określonych granic
Jak mogę uwzględnić szerokość obramowania, aby idealnie pasował do podanych granic?
Oto kod, którego używam do rysowania zaokrąglonego prostokąta.
private void DrawRoundedRectangle(Graphics gfx, Rectangle Bounds, int CornerRadius, Pen DrawPen, Color FillColor)
{
GraphicsPath gfxPath = new GraphicsPath();
DrawPen.EndCap = DrawPen.StartCap = LineCap.Round;
gfxPath.AddArc(Bounds.X, Bounds.Y, CornerRadius, CornerRadius, 180, 90);
gfxPath.AddArc(Bounds.X + Bounds.Width - CornerRadius, Bounds.Y, CornerRadius, CornerRadius, 270, 90);
gfxPath.AddArc(Bounds.X + Bounds.Width - CornerRadius, Bounds.Y + Bounds.Height - CornerRadius, CornerRadius, CornerRadius, 0, 90);
gfxPath.AddArc(Bounds.X, Bounds.Y + Bounds.Height - CornerRadius, CornerRadius, CornerRadius, 90, 90);
gfxPath.CloseAllFigures();
gfx.FillPath(new SolidBrush(FillColor), gfxPath);
gfx.DrawPath(DrawPen, gfxPath);
}