Regiões (GDI+)

Uma região é uma parte da superfície de exibição. Regiões podem ser simples (um único retângulo) ou complexas (uma combinação de polígonos e curvas fechadas). A ilustração a seguir mostra duas regiões: uma construída com base em um retângulo e outra construída com base em um demarcador.

ilustração mostrando uma região retangular transparente sobrepondo uma forma curva opaca

Regiões geralmente são usadas para recortes e testes de clique. O recorte envolve restringir o desenho a uma determinada região da tela, geralmente a parte da tela que precisa ser atualizada. O teste de clique envolve a verificação para ver se o cursor está em uma determinada região da tela quando um botão do mouse é pressionado.

Você pode construir uma região de um retângulo ou de um caminho. Você também pode criar regiões complexas combinando regiões existentes. A classe Region fornece os seguintes métodos para combinar regiões: Intersect, Union, Xor, Exclude e Region::Complement.

A interseção de duas regiões é o conjunto de todos os pontos que pertencem a ambas as regiões. A união é o conjunto de todos os pontos que pertencem a uma, outra ou ambas as regiões. O complemento de uma região é o conjunto de todos os pontos que não estão na região. A ilustração a seguir mostra a interseção e a união das duas regiões na figura anterior.

ilustração mostrando a interseção das regiões na ilustração anterior e sua interseção

O método Xor , aplicado a um par de regiões, produz uma região que contém todos os pontos que pertencem a uma região ou a outra, mas não a ambos. O método Exclude , aplicado a um par de regiões, produz uma região que contém todos os pontos na primeira região que não estão na segunda região. A ilustração a seguir mostra as regiões resultantes da aplicação dos métodos Xor e Exclude às duas regiões mostradas no início deste tópico.

ilustração mostrando as partes em ambas as regiões, mas não em ambas, e a parte do retângulo que não se sobrepõe à região curva

Para preencher uma região, você precisa de um objeto Graphics , um objeto Brush e um objeto Region . O objeto Graphics fornece o método Graphics::FillRegion e o objeto Brush armazena atributos do preenchimento, como cor ou padrão. O exemplo a seguir preenche uma região com uma cor sólida.

myGraphics.FillRegion(&mySolidBrush, &myRegion);