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


Области в GDI+

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

Screenshot of a region constructed from a rectangle and a screenshot of a region constructed from a path.

Использование областей

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

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

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

Screenshot of an intersection and a union of the two regions from the preceding illustration.

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

Screenshot of the Xor method results and the Exclude method results applied to the two regions from the preceding illustration.

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

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

См. также