Beispiel 2 — Kreis mit Farbe und Rahmen

Erstellt: 2026-05-27 · Aktualisiert: 2026-05-27

Advanced Snippet Editor

Ein Kreis mit Füllfarbe und farbigem Rahmen. Zeigt, wie man einen perfekten Kreis positioniert (Mittelpunkt statt Ecke) und einen sichtbaren Rahmen setzt.


Ergebnis


Code

/* PARAMS */
float cx    = 200f;   // Mittelpunkt X
float cy    = 200f;   // Mittelpunkt Y
float size  = 150f;   // Durchmesser
var   fill  = System.Drawing.Color.FromArgb(52, 152, 219);
var   line  = System.Drawing.Color.FromArgb(41, 128, 185);
/* END PARAMS */

var oCircle = ppptools.AddOval(cx - size/2f, cy - size/2f, size, size);

oCircle.Name = "MyCircle";
oCircle.Fill.ForeColor.RGB =
    System.Drawing.ColorTranslator.ToOle(fill);
oCircle.Fill.Transparency = 0f;
oCircle.Line.Weight = 2f;
oCircle.Line.ForeColor.RGB =
    System.Drawing.ColorTranslator.ToOle(line);

Schritt-für-Schritt-Erklärung

1. Kreis vs. Oval — msoShapeOval

PowerPoint kennt keinen eigenen „Kreis"-Typ. msoShapeOval erzeugt ein Oval. Wenn width == height, wird es ein perfekter Kreis.

ppptools.AddOval(
    cx - size/2f, cy - size/2f,   // obere linke Ecke
    size, size);                   // Breite = Höhe → Kreis

2. Mittelpunkt-Koordinaten

AddShape erwartet die obere linke Ecke (nicht den Mittelpunkt). Um einen Kreis am Punkt (cx, cy) zu zentrieren, rechnet man:

left = cx - size/2
top  = cy - size/2

Beispiel: cx=200, cy=200, size=150left=125, top=125

Das ist ein häufiges Muster: Formen werden oft geometrisch über ihren Mittelpunkt definiert, aber PowerPoint braucht die Ecke.

3. Rahmenfarbe und -stärke

oCircle.Line.Weight = 2f;          // Stärke in PT
oCircle.Line.ForeColor.RGB =
    System.Drawing.ColorTranslator.ToOle(line);

Im Gegensatz zu Beispiel 1 (kein Rahmen) wird hier ein sichtbarer Rahmen gesetzt. Line.Weight ist die Stärke in Points. Line.ForeColor.RGB ist die Rahmenfarbe — getrennt von Fill.ForeColor.

Eigenschaft Bedeutung
Line.Weight Rahmenstärke in PT
Line.ForeColor.RGB Rahmenfarbe (OLE-Format)
Line.Visible msoTrue / msoFalse
Fill.ForeColor.RGB Füllfarbe (OLE-Format)
Fill.Transparency 0.0 (opak) … 1.0 (transparent)

Besonderheiten dieses Beispiels

  • Kein Kreis-TypmsoShapeOval mit gleicher Breite/Höhe ergibt einen perfekten Kreis.
  • Mittelpunkt → Ecke-Umrechnungcx - size/2f / cy - size/2f ist ein Standardmuster für alle zentrierten Formen.
  • 2f statt 2 — Float-Literal nötig, da Line.Weight ein float erwartet. 2 würde in C# als int interpretiert und eine implizite Konvertierung auslösen.
  • Zwei separate Farben: eine für die Füllung (fill), eine für den Rahmen (line).

Zurück: Beispiel 1 — Rechteck · Weiter: Beispiel 3 — Union