Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1551 | Anzahl registrierter User: 1841 | Besucher online: 86
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Rechteck mit abgerundeten Ecken zeichnen


Autor: Jürgen Bayer
Sprache: C#
Bewertung:
6.23 (3 votes)
Anzahl der Aufrufe: 7229
  
Kick it on dotnet-kicks.de  

Beschreibung:

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.

Abgelegt unter: GDI+, Rechteck, zeichnen.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// **********************************************
// 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);
   }
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Tim Hartwig schrieb am:  18.10.2006 01:23:28

Guter Snippet und gut kommentiert 10P ;-)


Diese Snippets könnten für Sie interessant sein:

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.