Ich habe eine Methode, die ein abgerundetes Rechteck mit einem Rand zeichnet. Die Grenze kann eine beliebige Breite haben. Das Problem, das ich habe, ist, dass die Grenze über die angegebenen Grenzen hinausreicht, wenn sie dick ist, weil sie aus der Mitte eines Pfades gezogen wird.Wie zeichne abgerundetes Rechteck mit variabler Breite Rahmen innerhalb bestimmter Grenzen
Wie würde ich die Breite der Umrandung einschließen, so dass sie perfekt in die angegebenen Grenzen passt?
Hier ist der Code, den ich verwende, um das abgerundete Rechteck zu zeichnen.
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);
}