Entwickler-Ecke

Multimedia / Grafik - Kordinaten für das Zeichnen zuvor festlegen und abrufen


Hucki1993 - Do 09.12.10 21:58
Titel: Kordinaten für das Zeichnen zuvor festlegen und abrufen
Hallo, ich möchte in meinem Prgramm gerne mehrere Ellpsen zeichnen.
Gibt es eine Möglichkeit die Koordinaten für diese zuvor festzulegen und dann abzurufen?
Also z.B.:

_Ellipse = Pinselfarbe, x, y, _x, _y;

g1.FillEllipse(_Ellipse);

Danke!!!


Ralf Jansen - Do 09.12.10 22:31

Fertig? Nein.
Aber du könntest einfach eine Ellipse Klasse erzeugen mit den von dir benötigten Daten um dann eine von dir geschriebene Extension Method(mit Namen FillEllipse) am Graphics Object mit dieser Klasse aufzurufen.


Beispiel:


C#-Quelltext
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:
public static class ExtensionMethods
{
    public static void FillEllipse(this Graphics graphics, Ellipse ellipse)
    {
        Rectangle rect = new Rectangle(ellipse.X, ellipse.Y, ellipse._X, ellipse._Y);
        using (Brush brush = new SolidBrush(ellipse.Color))
        {
            graphics.FillEllipse(brush, rect);
        }
    }
}

public class Ellipse
{
    public Color Color { get; set; }
    public int X { get; set; }
    public int Y { get; set; }
    public int _X { get; set; }
    public int _Y { get; set; }
}

// Aufruf dann wie gewünscht z.B. 
private void meineLiebeForm_Paint(object sender, PaintEventArgs e)
{
    Ellipse ellipse = new Ellipse() { Color = Color.Red, X = 100, Y = 100, _Y = 100, _X = 100 }; ;
    e.Graphics.FillEllipse(ellipse);
}