解决GDI+的DrawString绘制带有偏移的问题
在使用GDI+的DrawString函数进行文字绘制时,即使设置了左对齐,在具体绘制时,字符起始绘制距离左边界仍然有部分空白。具体表现如下:
第一行为使用GDI+的DrawString绘制的,字符实际输出位置距离左边框线有2个像素的距离。
第二行为使用GDI的DrawText绘制的,字符实际输出能够紧靠左边框线。
经过网上查阅相关资料,有如下可用链接:
- 关于gdi+精确计算graphics.DrawString所需要的宽度问题
- how-to-properly-left-align-text-with-drawstring
- how-to-properly-left-align-text-with-drawstring
在上面第三个链接中,有如下的解决方案:
-
方案一,使用
TextRenderer.DrawText
函数,该函数是.Net开发框架中的GUI部分,无法在非.NET框架中使用。 -
方案二,在使用
Graphics.DrawString
时,设置format格式时,加上StringFormat.GenericTypographic
属性,可以移除偏移。