다음을 통해 공유


방법: 영역을 사용하여 클리핑

Graphics 클래스의 속성 중 하나는 클리핑 영역입니다. 특정 Graphics 개체에서 수행하는 모든 그리기 작업은 해당 Graphics 개체의 클리핑 영역으로 제한됩니다. SetClip 메서드를 호출하여 클리핑 영역을 설정할 수 있습니다.

예제

아래 예제에서는 다각형 하나로 구성되는 경로를 만듭니다. 그런 다음 코드에서는 그 경로를 바탕으로 영역을 구성합니다. 그러면 이 영역이 Graphics 개체의 SetClip 메서드에 전달되고 두 개의 문자열이 그려집니다.

아래 그림에 클리핑된 문자열이 나와 있습니다.

클립

        ' Create a path that consists of a single polygon.
        Dim polyPoints As Point() = { _
           New Point(10, 10), _
           New Point(150, 10), _
           New Point(100, 75), _
           New Point(100, 150)}
        Dim path As New GraphicsPath()
        path.AddPolygon(polyPoints)

        ' Construct a region based on the path.
        Dim [region] As New [Region](path)

        ' Draw the outline of the region.
        Dim pen As Pen = Pens.Black
        e.Graphics.DrawPath(pen, path)

        ' Set the clipping region of the Graphics object.
        e.Graphics.SetClip([region], CombineMode.Replace)

        ' Draw some clipped strings.
        Dim fontFamily As New FontFamily("Arial")
        Dim font As New Font( _
           fontFamily, _
           36, _
           FontStyle.Bold, _
           GraphicsUnit.Pixel)
        Dim solidBrush As New SolidBrush(Color.FromArgb(255, 255, 0, 0))

        e.Graphics.DrawString( _
           "A Clipping Region", _
           font, _
           solidBrush, _
           New PointF(15, 25))

        e.Graphics.DrawString( _
           "A Clipping Region", _
           font, _
           solidBrush, _
           New PointF(15, 68))

     // Create a path that consists of a single polygon.
     Point[] polyPoints = {
new Point(10, 10),
new Point(150, 10), 
new Point(100, 75),
new Point(100, 150)};
     GraphicsPath path = new GraphicsPath();
     path.AddPolygon(polyPoints);

     // Construct a region based on the path.
     Region region = new Region(path);

     // Draw the outline of the region.
     Pen pen = Pens.Black;
     e.Graphics.DrawPath(pen, path);

     // Set the clipping region of the Graphics object.
     e.Graphics.SetClip(region, CombineMode.Replace);

     // Draw some clipped strings.
     FontFamily fontFamily = new FontFamily("Arial");
     Font font = new Font(
        fontFamily,
        36, FontStyle.Bold,
        GraphicsUnit.Pixel);
     SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 255, 0, 0));

     e.Graphics.DrawString(
        "A Clipping Region",
        font, solidBrush,
        new PointF(15, 25));

     e.Graphics.DrawString(
        "A Clipping Region",
        font,
        solidBrush,
        new PointF(15, 68));

코드 컴파일

앞의 예제는 Windows Forms에서 사용해야 하며 PaintEventHandler의 매개 변수인 PaintEventArgs e를 필요로 합니다.

참고 항목

개념

GDI+의 영역

기타 리소스

영역 사용