Das letzte Beispiel kann mit einer geringfügigen Ergänzung so verändert werden, dass die vier Rechtecke zum Rahmen des Anzeigebereichs sowie zueinander einen festen Abstand halten. Dazu verkleinerst du die durch Rechnung erzeugten Rechtecke. Für das Verkleinern verwendest du die modifizierende Version der Methode Inflate, die kein neues Rechteck herstellt:
int x = rechteck.X; int y = rechteck.Y; int breite = rechteck.Width; int hoehe = rechteck.Height; Rectangle linksOben = new Rectangle(x, y, breite/2, hoehe/2); Rectangle rechtsOben = new Rectangle(x + breite/2, y, breite - breite / 2, hoehe/2); Rectangle linksUnten = new Rectangle(x, y + hoehe/2, breite/2, hoehe - hoehe/2); Rectangle rechtsUnten = new Rectangle(x + breite/2, y + hoehe/ 2, breite - breite/2, hoehe - hoehe/2); linksOben.Inflate(-2, -2); rechtsOben.Inflate(-2, -2); linksUnten.Inflate(-2, -2); rechtsUnten.Inflate(-2, -2); using (SolidBrush pinsel = new SolidBrush(Color.White)) { g.FillRectangle(pinsel, rechteck); pinsel.Color = Color.FromArgb(128, 0, 0); g.FillRectangle(pinsel, linksOben); pinsel.Color = Color.FromArgb(0, 128, 0); g.FillRectangle(pinsel, rechtsOben); pinsel.Color = Color.FromArgb(128, 128, 0); g.FillRectangle(pinsel, linksUnten); pinsel.Color = Color.FromArgb(0, 0, 128); g.FillRectangle(pinsel, rechtsUnten); }
Auch hier passen sich die farbigen Rechtecke der Fenstergröße an.