Compartir a través de


Regiones (GDI+)

Una región es una parte de la superficie de visualización. Las regiones pueden ser simples (un solo rectángulo) o complejas (una combinación de polígonos y curvas cerradas). En la ilustración siguiente se muestran dos regiones: una construida a partir de un rectángulo y otra, a partir de un trazado.

ilustración en la que se muestra una región rectangular transparente superpuesta a una forma curva opaca

Las regiones se suelen usar para el recorte y las pruebas de posicionamiento. El recorte implica restringir el dibujo a una determinada región de la pantalla, normalmente la parte de la pantalla que debe actualizarse. Las pruebas de posicionamiento implican comprobar si el cursor está en una determinada región de la pantalla cuando se presiona un botón del mouse.

Puede construir una región a partir de un rectángulo o de una ruta de acceso. También puede crear regiones complejas mediante la combinación de regiones existentes. La clase Region proporciona los métodos siguientes para combinar regiones: Intersect, Union, Xor, Exclude y Region::Complement.

La intersección de dos regiones es el conjunto de todos los puntos que pertenecen a ambas regiones. La unión es el conjunto de todos los puntos que pertenecen a una u otra región o a ambas. El complemento de una región es el conjunto de todos los puntos que no se encuentran en la región. En la ilustración siguiente se muestra la intersección y unión de las dos regiones de la ilustración anterior.

ilustración que muestra la intersección de las regiones en la ilustración anterior y su intersección

El método Xor , aplicado a un par de regiones, genera una región que contiene todos los puntos que pertenecen a una región o a la otra, pero no a ambas. El método Exclude , aplicado a un par de regiones, genera una región que contiene todos los puntos de la primera región que no están en la segunda región. En la ilustración siguiente se muestran las regiones resultantes de aplicar los métodos Xor y Exclude a las dos regiones que se muestran al principio de este tema.

ilustración en la que se muestran las partes de cualquiera de las regiones, pero no ambas, y la parte del rectángulo que no se superpone a la región curvada

Para rellenar una región, necesita un objeto Graphics , un objeto Brush y un objeto Region . El objeto Graphics proporciona el método Graphics::FillRegion y el objeto Brush almacena atributos del relleno, como el color o el patrón. En el ejemplo siguiente se rellena una región con un color sólido.

myGraphics.FillRegion(&mySolidBrush, &myRegion);