解决GDI+的DrawString绘制带有偏移的问题

在使用GDI+的DrawString函数进行文字绘制时,即使设置了左对齐,在具体绘制时,字符起始绘制距离左边界仍然有部分空白。具体表现如下:

GDI+绘制左侧有间隔.jpg

第一行为使用GDI+的DrawString绘制的,字符实际输出位置距离左边框线有2个像素的距离。

第二行为使用GDI的DrawText绘制的,字符实际输出能够紧靠左边框线。

经过网上查阅相关资料,有如下可用链接:

  1. 关于gdi+精确计算graphics.DrawString所需要的宽度问题
  2. how-to-properly-left-align-text-with-drawstring
  3. how-to-properly-left-align-text-with-drawstring

在上面第三个链接中,有如下的解决方案:

  • 方案一,使用TextRenderer.DrawText函数,该函数是.Net开发框架中的GUI部分,无法在非.NET框架中使用。

  • 方案二,在使用Graphics.DrawString时,设置format格式时,加上StringFormat.GenericTypographic属性,可以移除偏移。

原文地址:https://www.cnblogs.com/cherishui/p/12747334.html