vb.net中获取圆角矩形的两种方法

 

  ' 方法一
     Private   Function GetRoundedRectPath(ByVal rect As Rectangle, ByVal radius As IntegerAs System.Drawing.Drawing2D.GraphicsPath
        rect.Offset(
-1-1)
        
Dim RoundRect As New Rectangle(rect.Location, New Size(radius - 1, radius - 1))
        
Dim path As New System.Drawing.Drawing2D.GraphicsPath

        path.AddArc(RoundRect, 
18090)     '左上角

        RoundRect.X 
= rect.Right - radius   '右上角
        path.AddArc(RoundRect, 27090)

        RoundRect.Y 
= rect.Bottom - radius  '右下角
        path.AddArc(RoundRect, 090)

        RoundRect.X 
= rect.Left             '左下角
        path.AddArc(RoundRect, 9090)

        path.CloseFigure()

        
Return path
    
End Function


    
' 方法二()
     Private   Function CreateRoundedRectPath(ByVal rect As Rectangle, ByVal radius As IntegerAs System.Drawing.Drawing2D.GraphicsPath
        
Dim RoundRect As New System.Drawing.Drawing2D.GraphicsPath

        RoundRect.AddLine(rect.Left 
+ radius - 2, rect.Top - 1, rect.Right - radius, rect.Top - 1)          '顶端 
        RoundRect.AddArc(rect.Right - radius, rect.Top - 1, radius, radius, 27090)                        '右上角 
        RoundRect.AddLine(rect.Right, rect.Top + radius, rect.Right, rect.Bottom - radius)                  '右边 
        RoundRect.AddArc(rect.Right - radius, rect.Bottom - radius, radius, radius, 090)                  '右下角 
        RoundRect.AddLine(rect.Right - radius, rect.Bottom, rect.Left + radius, rect.Bottom)                '底边 
        RoundRect.AddArc(rect.Left - 1, rect.Bottom - radius, radius, radius, 9090)                       '左下角 
        RoundRect.AddLine(rect.Left - 1, rect.Top + radius, rect.Left - 1, rect.Bottom - radius)            '左边 
        RoundRect.AddArc(rect.Left - 1, rect.Top - 1, radius, radius, 18090)                              '左上角 

        
Return RoundRect
    
End Function
 

你可能感兴趣的:(vb.net中获取圆角矩形的两种方法)