Hallo zusammen.
Auch auf die Gefahr hin mich lächerlich zu machen, ich habe ein Problem beim Zeichenen eines Rechteckes auf einem Panel.
using (Graphics g = this.panel1.CreateGraphics())
{
Pen pen = new Pen(Color.Black, 1F);
pen.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset;
g.DrawRectangle(pen, 2, 2, 10 , 10);
}
Wie man anhand meines Codes erkennen kann, soll ein Rechteck von 1010 Pixel an der Position 2,2 gezeichnet werden. Schaut man sich aber das gezeichnete Rechteck in einem Zeichenprogramm an
<siehe Anhang>
sieht man das das Rechteck zwar an der Position 2,2 gezeichnet wurde aber keine 1010 Pixel groß ist. Warum?
Vielen Dank erstmal für den Hinweis trotzdem ist mir nicht ganz klar wie ich jetzt vorgehen muss.
Es geht um ein eigenes Steuerelement.
Das Panel(ClientRec) besitzt als BorderStyle den Type Fixed3D. Das Panel soll nun in weitere Bereiche unterteilt werden.
Als Beispiel soll die vom ClientRec zur Verfügung gestellt Fläche abzüglich der Border nochmal als eine gesonderte Fläche (ContentRec) unterteilt werden (Rot dargestellt).
<siehe Anhang>
Im Code sieht dies so aus:
ContentRec = ClientRec;
ContentRec .X += BorderLeft;
ContentRec .Y += BorderTop;
ContentRec .Width -= BorderRight + BorderLeft;
ContentRec .Height -= BorderBottom + BorderTop;
Hätte ich damit die komplette Fläche des ClientRec erfasst?
Zur Überprüfung der Größe hatte ich ein farbiges Rechteck gezeichnet welches wie bereits erwähnt immer ein Pixel zu lang war und damit die Border überzeichnet hatte.
Hallo Rainer Wein,
die Lösung ist doch offensichtlich: Vermindere die berechnete Breite und Höhe um eins.
Das ist nun wirklich elementar. Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
herbivore