Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.раб. поС#.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.88 Mб
Скачать

Класс Region

Этот класс представляет собой внутреннюю область, занятую геометрической фигурой. Чтобы создать объект этого класса, необходимо передать его конструктору некоторый объект, представляющий собой геометрическую фигуру. Например, есть прямоугольник размером 100 на 100 пикселов. Чтобы получить объект класса Region, соответствующий внутренней области этого прямоугольника, код может быть таким:

// Получаем объект Region для прямоугольника

Rectangle г = new Rectangle(0, 0, 100, 100);

Region rgn = new Region(r);

После того как объект класса Region создан, можно использовать многочисленные члены этого класса. Наиболее важные из них представлены в таблице:

Таблица 5.3. Члены класса Region

Член

Назначение

Complement()

Дополняет объект Region другими графическими объектами, которые не пересекаются с исходным объектом Region

Exclude()

Исключает область, занимаемую другим графическим объектом, из области объекта Region

Intersect()

Перегружен. Уменьшает область, занимаемую исходным объектом Region, до области наложения друг на друга исходного и указанного пользователем объектов Region

GetBounds()

Возвращает объект класса RectangleF, представляющий прямоугольник, в который точно вписана область, занимаемая объектом Region

IsEmpty(), MakeEmpty()

Позволяют определить, имеет ли область, занимаемая данным объектом Region, нулевой размер, или установить нулевой размер для области Region

IsInfinite(), MakeInfinite()

Позволяют определить, является ли область, занимаемая объектом Region, бесконечной, или установить бесконечный размер для данной области

Translate()

Сдвигает координаты объекта Region на указанную пользователем величину

Union()

Объединяет указанный объект Region с другим графическим объектом

Хог()

Объединяет указанный объект Region с другим графическим объектом, исключая при этом область пересечения этих двух объектов

Вывод графических объектов без события Paint

Бывает так, что вывод графического объекта необходимо произвести не в стандартных ситуациях, то есть не когда возникает событие Paint, а в ответ на другие события. Например, вывести маленький кружок в том месте, где на форме был сделан щелчок мышью. Первое, необходимо получить объект Graphics, а затем выполнить с этим объектом необходимые манипуляции. Объект Graphics можно получить при помощи метода Graphics.FromHwnd(). Обратите внимание, что единственный параметр, передаваемый этому методу, — это значение свойства Handle. Свойство Handle, определено в классе Control и наследуется всеми классами, производными от Control.

private void Form1_MouseDown( Object sender, MouseEventArgs e) {

// Получаем объект Graphics

Graphics g = Graphics.FromHwnd(this.Handle);

// Теперь в месте щелчка мышью рисуем кружок диаметром 10 пикселов

g.DrawEllipse(new Pen(Color.Green), e.X , e.Y, 10, 10);

}

При любой перерисовке формы все кружки, выведенные на форме после щелчков мышью, исчезнут. Чтобы информация о графических объектах сохранялась и использовалась при перерисовке формы самый простой способ — создать внутреннюю коллекцию (например, ArrayList) и помещать туда нужные объекты. Затем к этой коллекции будет обращаться метод OnPaint().

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]