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


Области в GDI+

Обновлен: Ноябрь 2007

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

Области

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

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

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

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

Области

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

Области

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

myGraphics.FillRegion(mySolidBrush, myRegion)

myGraphics.FillRegion(mySolidBrush, myRegion);

См. также

Ссылки

System.Drawing.Region

Другие ресурсы

Прямые и кривые линии и фигуры

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