Regiões em GDI+
Uma região é uma parte da área de exibição de um dispositivo de saída. Regiões podem ser simples (um retângulo único) ou complexos (uma combinação de polígonos e curvas fechadas). A ilustração a seguir mostra duas regiões: um construído a partir de um retângulo e o outro, construídos a partir de um caminho.
O uso de regiões
Regiões são geralmente usadas para corte e teste de hit. Recorte envolve restringir o desenho para uma determinada região da área de exibição, geralmente a parte que precisa ser atualizado. Teste de acertos envolve a verificação para determinar 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 um caminho. Você também pode criar regiões complexas, combinando áreas existentes. O Region classe fornece os seguintes métodos para a combinação de regiões: Intersect, Union, , Xor, Exclude, e 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 um outro 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 união das duas regiões mostrado na ilustração anterior.
O Xor método, aplicado a um par de regiões, produz uma região que contém todos os pontos que pertencem a uma região ou o outro, mas não ambos. O Exclude método, aplicado a um par de regiões, produz uma região que contém todos os pontos a primeira região que não estão em região segundo. A ilustração a seguir mostra as regiões que resultam da aplicação de Xor e Exclude métodos em duas regiões é mostrado no início deste tópico.
Para preencher uma região, você precisa de um Graphics objeto, um Brush o objeto e um Region objeto. O Graphics objeto fornece a FillRegion método e o Brush objeto armazena os atributos de preenchimento, como cor ou padrão. O exemplo a seguir preenche uma região com uma cor sólida.
myGraphics.FillRegion(mySolidBrush, myRegion)
myGraphics.FillRegion(mySolidBrush, myRegion);