Graphics.IsVisible Method (Single, Single, Single, Single)

 

Indicates whether the rectangle specified by a pair of coordinates, a width, and a height is contained within the visible clip region of this Graphics.

Namespace:   System.Drawing
Assembly:  System.Drawing (in System.Drawing.dll)

public bool IsVisible(
	float x,
	float y,
	float width,
	float height
)

Parameters

x
Type: System.Single

The x-coordinate of the upper-left corner of the rectangle to test for visibility.

y
Type: System.Single

The y-coordinate of the upper-left corner of the rectangle to test for visibility.

width
Type: System.Single

Width of the rectangle to test for visibility.

height
Type: System.Single

Height of the rectangle to test for visibility.

Return Value

Type: System.Boolean

true if the rectangle defined by the x, y, width, and height parameters is contained within the visible clip region of this Graphics; otherwise, false.

The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. The code performs the following actions:

  • Creates a rectangular clipping region and sets it as the clipping region for the graphics object of the form using Replace.

  • Creates the location and size of two rectangles, one inside the clipping region and one outside.

  • Tests each of the rectangles for visibility and draws only the visible one.

The result is one small red rectangle, which is within the clip region.

private void IsVisible4Float(PaintEventArgs e)
{

    // Set clip region.
    Region clipRegion = new Region(new Rectangle(50, 50, 100, 100));
    e.Graphics.SetClip(clipRegion, CombineMode.Replace);

    // Set up coordinates of rectangles.
    float x1 = 100.0F;
    float y1 = 100.0F;
    float width1 = 20.0F;
    float height1 = 20.0F;
    float x2 = 200.0F;
    float y2 = 200.0F;
    float width2 = 20.0F;
    float height2 = 20.0F;

    // If rectangle is visible, fill it.
    if (e.Graphics.IsVisible(x1, y1, width1, height1))
    {
        e.Graphics.FillRectangle(new SolidBrush(Color.Red), x1, y1, width1, height1);
    }
    if (e.Graphics.IsVisible(x2, y2, width2, height2))
    {
        e.Graphics.FillRectangle(new SolidBrush(Color.Blue), x2, y2, width2, height2);
    }
}

.NET Framework
Available since 1.1
Return to top
Show: