Regionen (GDI+)

Ein Bereich ist ein Teil der Anzeigeoberfläche. Bereiche können einfach (ein einzelnes Rechteck) oder komplex (eine Kombination aus Polygonen und geschlossenen Kurven) sein. Die folgende Abbildung zeigt zwei Bereiche: einen aus einem Rechteck und den anderen aus einem Pfad.

Abbildung eines transparenten rechteckigen Bereichs, der eine nicht transparente gekrümmte Form überlappt

Bereiche werden häufig für Clipping- und Treffertests verwendet. Clipping umfasst das Einschränken des Zeichnens auf einen bestimmten Bereich des Bildschirms, in der Regel den Teil des Bildschirms, der aktualisiert werden muss. Bei Treffertests wird überprüft, ob sich der Cursor in einem bestimmten Bereich des Bildschirms befindet, wenn eine Maustaste gedrückt wird.

Sie können einen Bereich aus einem Rechteck oder aus einem Pfad erstellen. Sie können auch komplexe Regionen erstellen, indem Sie vorhandene Regionen kombinieren. Die Region-Klasse stellt die folgenden Methoden zum Kombinieren von Regionen bereit: Überschneidenvon , Union, Xor, Excludeund Region::Complement.

Die Schnittmenge von zwei Regionen ist der Satz aller Punkte, die zu beiden Regionen gehören. Die Union ist der Satz aller Punkte, die zu einer oder der anderen oder beiden Regionen gehören. Das Komplement eines Bereichs ist der Satz aller Punkte, die sich nicht in der Region befinden. Die folgende Abbildung zeigt die Schnittmenge und Vereinigung der beiden Bereiche in der vorherigen Abbildung.

Abbildung, die die Schnittmenge der Bereiche in der vorherigen Abbildung und deren Schnittmenge zeigt

Die Xor-Methode, die auf ein Regionspaar angewendet wird, erzeugt einen Bereich, der alle Punkte enthält, die zu einer Region oder der anderen gehören, aber nicht beides. Die Exclude-Methode, die auf ein Regionspaar angewendet wird, erzeugt einen Bereich, der alle Punkte in der ersten Region enthält, die sich nicht in der zweiten Region befinden. Die folgende Abbildung zeigt die Regionen, die sich aus der Anwendung der Methoden Xor und Exclude auf die beiden Regionen ergeben, die am Anfang dieses Themas gezeigt werden.

Abbildung der Teile in beiden Bereichen, aber nicht in beiden, und des Teils des Rechtecks, der den gekrümmten Bereich nicht überlappt

Um einen Bereich auszufüllen, benötigen Sie ein Graphics-Objekt, ein Brush-Objekt und ein Region-Objekt. Das Graphics-Objekt stellt die Graphics::FillRegion-Methode bereit, und das Brush-Objekt speichert Attribute der Füllung, z. B. Farbe oder Muster. Im folgenden Beispiel wird ein Bereich mit einer Volltonfarbe gefüllt.

myGraphics.FillRegion(&mySolidBrush, &myRegion);