Поделиться через


Регионы в GDI+

Область — это часть области отображения выходного устройства. Области могут быть простыми (один прямоугольник) или сложными (сочетание многоугольников и закрытых кривых). На следующем рисунке показаны два региона: один построен из прямоугольника, а другой — на основе пути.

Скриншот области, построенной из прямоугольника, и скриншот области, построенной из пути.

Использование регионов

Регионы часто используются для отрезки и тестирования попаданий. Ограничение области рисования включает установление границ на определённый участок дисплея, как правило, ту часть, которая должна быть обновлена. Тестирование нажатия включает проверку с целью определения, находится ли курсор в определенном регионе экрана при нажатии клавиши мыши.

Вы можете создать регион из прямоугольника или пути. Кроме того, можно создать сложные регионы, объединив существующие регионы. Класс Region предоставляет следующие методы для объединения регионов: Intersect, Union, , Xorи ExcludeComplement.

Пересечение двух регионов — это набор всех точек, принадлежащих обоим регионам. Объединение — это набор всех точек, принадлежащих одному или другому или обоим регионам. Дополнением региона является набор всех точек, которые не находятся в регионе. На следующем рисунке показан пересечение и объединение двух регионов, показанных на предыдущем рисунке.

Снимок экрана: пересечение и объединение двух регионов на предыдущем рисунке.

Метод Xor , применяемый к паре регионов, создает регион, содержащий все точки, принадлежащие одному региону или другому, но не оба. Метод Exclude , применяемый к паре регионов, создает регион, содержащий все точки в первом регионе, которые не находятся во втором регионе. На следующем рисунке показаны регионы, которые получаются в результате применения методов Xor и Exclude к двум регионам, показанным в начале этого раздела.

Снимок экрана: результаты метода Xor и результаты метода Exclude, примененные к двум регионам на предыдущем рисунке.

Для заполнения региона требуется Graphics объект, Brush объект и Region объект. Объект Graphics предоставляет FillRegion метод, а Brush объект хранит атрибуты заливки, например цвет или шаблон. В следующем примере область заполняется сплошным цветом.

myGraphics.FillRegion(mySolidBrush, myRegion);
myGraphics.FillRegion(mySolidBrush, myRegion)

См. также