Ridimensionamento in un'area

Una delle proprietà della classe Graphics è l'area di ridimensionamento. Tutti i disegni effettuati da un dato oggetto Graphics sono limitati dall'area di ridimensionamento di quell'oggetto. È possibile impostare tale area chiamando il metodo SetClip.

Nell'esempio riportato di seguito si crea un percorso composto da un singolo poligono. Viene quindi creata un'area basata su tale percorso. L'area viene passata al metodo SetClip di un oggetto Graphics e quindi vengono create due stringhe.

' 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))
[C#]
// 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));

Nell'illustrazione che segue sono mostrate le stringhe tagliate.