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


Обрезка (GDI+)

Обрезка включает ограничение рисования определенным регионом. На рисунке ниже показана строка "Hello", обрезанная областью в форме сердца.

Иллюстрация, показывающая части строки

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

Иллюстрация, показывающая строку

Чтобы рисовать с помощью обрезки, создайте объект Graphics , вызовите его метод SetClip , а затем вызовите методы рисования того же объекта Graphics . В следующем примере рисуется линия, обрезанная в прямоугольную область.

Region myRegion(Rect(20, 30, 100, 50));
myGraphics.DrawRectangle(&myPen, 20, 30, 100, 50);  
myGraphics.SetClip(&myRegion, CombineModeReplace);
myGraphics.DrawLine(&myPen, 0, 0, 200, 200);

На следующем рисунке показана прямоугольная область вместе с обрезанной линией.

Иллюстрация, показывающая прямоугольник с диагональной линией сверху вниз