Feedback

C# - Rechteck mit abgerundeten Ecken zeichnen

Veröffentlicht von am 17.10.2006
(3 Bewertungen)
GDI+ bietet keine Möglichkeit, ein Rechteck mit abgerundeten Ecken zu zeichnen. Die Methode DrawRoundedRectangle, die dem C# 2005 Premium Codebook entstammt, übernimmt diese Aufgabe.
GFU-Schulungen  [Anzeige]

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

// **********************************************
// Dies ist eines der 322 Rezepte aus dem
// C# 2005 Premium Codebook. 
// Das Snippet wurde vom Autor mit freundlicher 
// Genehmigung von Addison Wesley 
// bei dotnet-snippets.de veröffentlicht.
// **********************************************


/// <summary>
/// Zeichnet ein Rechteck mit abgerundeten Ecken
/// </summary>
/// <param name="g">Referenz auf das Graphics-Objekt, auf dem gezeichnet werden soll</param>
/// <param name="x">X-Position des Rechtecks</param>
/// <param name="y">Y-Position des Rechtecks</param>
/// <param name="width">Breite des Rechtecks</param>
/// <param name="height">Höhe des Rechtecks</param>
/// <param name="cornerRadius">Radius der abgerundeten Ecken</param>
/// <param name="fillBrush">Brush, der für das Füllen des Rechtecks verwendet wird. Kann null sein.</param>
/// <param name="linePen">Pen, der für das Zeichnen des Rechteck-Randes verwendet wird. Kann null sein.</param>
public static void DrawRoundedRectangle(Graphics g,
   int x, int y, int width, int height,
   int cornerRadius, Brush fillBrush, Pen linePen)
{
   // Neuen GraphicsPath erzeugen ...
   GraphicsPath gp = new GraphicsPath();

   // ... und die Linien der Figur hinzufügen
   // Oben
   gp.AddLine(x + cornerRadius, y, x + width - cornerRadius, y);
   // Ecke rechts oben
   gp.AddArc(x + width - cornerRadius, y, cornerRadius,
      cornerRadius, 270, 90);
   // Rechts
   gp.AddLine(x + width, y + cornerRadius, x + width,
      y + height - cornerRadius);
   // Ecke rechts unten
   gp.AddArc(x + width - cornerRadius, y + height - cornerRadius,
      cornerRadius, cornerRadius, 0, 90);
   // Unten
   gp.AddLine(x + width - cornerRadius, y + height,
      x + cornerRadius, y + height);
   // Ecke links unten
   gp.AddArc(x, y + height - cornerRadius, cornerRadius,
      cornerRadius, 90, 90);
   // Links
   gp.AddLine(x, y + height - cornerRadius, x, y + cornerRadius);
   // Ecke links oben
   gp.AddArc(x, y, cornerRadius, cornerRadius, 180, 90);

   // Die Figur abschließen
   gp.CloseFigure();

   // Den Pfad mit dem übergebenen Pinsel füllen
   if (fillBrush != null)
   {
      g.FillPath(fillBrush, gp);
   }

   // Die Linien des Pfades zeichnen
   if (linePen != null)
   {
      g.DrawPath(linePen, gp);
   }
}
Abgelegt unter GDI+, Rechteck, zeichnen.

1 Kommentare zum Snippet

Tim Hartwig schrieb am 18.10.2006:
Guter Snippet und gut kommentiert 10P ;-)
 

Logge dich ein, um hier zu kommentieren!