[blue] Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim g As Graphics = Me.PictureBox1.CreateGraphics() [green]'work against a picturebox for this example
' the lines below just create us a region called myregion[/green]
Dim path As System.Drawing.Drawing2D.GraphicsPath = New System.Drawing.Drawing2D.GraphicsPath
path.AddEllipse(New Rectangle(0, 0, 100, 100))
Dim myregion As Region = New System.Drawing.Region(path)
Using rgn = myregion.Clone
[green]' Make the cloned region slightly bigger than the original[/green]
Using m As New Drawing2D.Matrix
m.Scale(1.02, 1.02)
rgn.Transform(m)
End Using
[green]' Recenter the larger clone[/green]
Dim s = myregion.GetBounds(g).Size - rgn.GetBounds(g).Size
rgn.Translate(s.Width / 2, s.Height / 2)
[green]' Ok, paint a picture into myregion, in this case just a simple fill of the region which happens to be an ellipse[/green]
g.FillRegion(Brushes.White, myregion)
[green]' Now exclude the original region from the clipping region[/green]
g.ExcludeClip(myregion)
[green]' Now paint in the bigger region - because we have removed original region from clipping area and recentered the slightly larger clone we will only see an outline painted[/green]
g.FillRegion(Brushes.Black, rgn)
End Using
[green]' Tidy up[/green]
g.Dispose()
End Sub[/blue]