Regiões no GDI+
Uma região é uma parte da área de exibição de um dispositivo de saída. As 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 a partir de um retângulo e outra construída a partir de um caminho.
Usando regiões
As regiões geralmente são usadas para recorte e teste de colisão. O recorte envolve restringir o desenho a uma determinada região da área de visualização, geralmente a parte que precisa ser atualizada. O teste de clique 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 a partir de um retângulo ou 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, Excludee 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 ou outra ou a 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 mostradas na ilustração anterior.
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 outra, mas não a ambas. 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.
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 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);
myGraphics.FillRegion(mySolidBrush, myRegion)
Consulte também
.NET Desktop feedback