12,299,560 members (53,523 online)

#### Stats

209K views
118 bookmarked
Posted

, 24 Mar 2006 CPOL
A panel that has rounded borders, gradients, and transparency.
 AlphaGradientPanel AlphaGradientPanel AlphaGradientPanel.vbproj.user bin Release AlphaGradientPanel.dll My Project Application.myapp TestApp MainApplication.vbproj.user My Project Application.myapp ```Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Drawing.Design Public Class DrawingHelper Public Shared Function RoundedRect(ByVal rect As RectangleF, Optional ByVal cornerradius As Integer = 5, Optional ByVal roundedcorners As Corner = Corner.All) As Drawing2D.GraphicsPath Dim p As New Drawing2D.GraphicsPath Dim x As Single = rect.X, y As Single = rect.Y, w As Single = rect.Width, h As Single = rect.Height, r As Integer = cornerradius p.StartFigure() 'top left arc If CBool(roundedcorners And Corner.TopLeft) Then p.AddArc(New RectangleF(x, y, 2 * r, 2 * r), 180, 90) Else p.AddLine(New PointF(x, y + r), New PointF(x, y)) p.AddLine(New PointF(x, y), New PointF(x + r, y)) End If 'top line p.AddLine(New PointF(x + r, y), New PointF(x + w - r, y)) 'top right arc If CBool(roundedcorners And Corner.TopRight) Then p.AddArc(New RectangleF(x + w - 2 * r, y, 2 * r, 2 * r), 270, 90) Else p.AddLine(New PointF(x + w - r, y), New PointF(x + w, y)) p.AddLine(New PointF(x + w, y), New PointF(x + w, y + r)) End If 'right line p.AddLine(New PointF(x + w, y + r), New PointF(x + w, y + h - r)) 'bottom right arc If CBool(roundedcorners And Corner.BottomRight) Then p.AddArc(New RectangleF(x + w - 2 * r, y + h - 2 * r, 2 * r, 2 * r), 0, 90) Else p.AddLine(New PointF(x + w, y + h - r), New PointF(x + w, y + h)) p.AddLine(New PointF(x + w, y + h), New PointF(x + w - r, y + h)) End If 'bottom line p.AddLine(New PointF(x + w - r, y + h), New PointF(x + r, y + h)) 'bottom left arc If CBool(roundedcorners And Corner.BottomLeft) Then p.AddArc(New RectangleF(x, y + h - 2 * r, 2 * r, 2 * r), 90, 90) Else p.AddLine(New PointF(x + r, y + h), New PointF(x, y + h)) p.AddLine(New PointF(x, y + h), New PointF(x, y + h - r)) End If 'left line p.AddLine(New PointF(x, y + h - r), New PointF(x, y + r)) 'close figure... p.CloseFigure() Return p End Function Public Shared Function RoundedRect(ByVal location As Point, ByVal size As Size, Optional ByVal cornerradius As Integer = 5, Optional ByVal roundedcorners As Corner = Corner.All) As Drawing2D.GraphicsPath Return RoundedRect(New RectangleF(location.X, location.Y, size.Width, size.Height), cornerradius, roundedcorners) End Function Public Shared Function RoundedRect(ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer, Optional ByVal cornerradius As Integer = 5, Optional ByVal roundedcorners As Corner = Corner.All) As Drawing2D.GraphicsPath Return RoundedRect(New RectangleF(x, y, width, height), cornerradius, roundedcorners) End Function Public Shared Function RoundedRect(ByVal rect As Rectangle, Optional ByVal cornerradius As Integer = 5, Optional ByVal roundedcorners As Corner = Corner.All) As Drawing2D.GraphicsPath Return RoundedRect(New RectangleF(rect.Left, rect.Top, rect.Width, rect.Height), cornerradius, roundedcorners) End Function Public Shared Function RoundedRect(ByVal location As PointF, ByVal size As SizeF, Optional ByVal cornerradius As Integer = 5, Optional ByVal roundedcorners As Corner = Corner.All) As Drawing2D.GraphicsPath Return RoundedRect(New RectangleF(location.X, location.Y, size.Width, size.Height), cornerradius, roundedcorners) End Function End Class _ Public Enum Corner None = 0 TopLeft = 1 TopRight = 2 BottomLeft = 4 BottomRight = 8 All = TopLeft Or TopRight Or BottomLeft Or BottomRight TLBR = TopLeft Or BottomRight TRBL = TopRight Or BottomLeft TRBR = TopRight Or BottomRight TLBL = TopLeft Or BottomLeft TRTL = TopRight Or TopLeft BRBL = BottomRight Or BottomLeft AllxBottomRight = TopLeft Or TopRight Or BottomLeft End Enum _ Public Enum ImagePosition Center TopLeft TopRight BottomLeft BottomRight End Enum```

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.