且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

圆角矩形不准确

更新时间:2023-12-02 20:47:04

我发现***的解决方案是老式 Windows API:

I have found the best solution to be just old-school Windows API:

Private Sub DrawRoundRect(ByVal g As Graphics, ByVal r As Rectangle)
  Dim hDC As IntPtr = g.GetHdc
  Dim hPen As IntPtr = CreatePen(PS_SOLID, 0, ColorTranslator.ToWin32(Color.Red))
  Dim hOldPen As IntPtr = SelectObject(hDC, hPen)
  SelectObject(hDC, GetStockObject(NULL_BRUSH))
  RoundRect(hDC, r.Left, r.Top, r.Right - 1, r.Bottom - 1, 12, 12)
  SelectObject(hDC, hOldPen)
  DeleteObject(hPen)
  g.ReleaseHdc(hDC)
End Sub

这产生了我一直在寻找的对称圆角矩形:

This produces the symmetrical rounded rectangle I've been looking for: