如何绘制没有填充的字符串

本文关键字:填充 字符串 何绘制 绘制 | 更新日期: 2023-09-27 18:07:20

我使用的是GraphicsPath.AddString()函数,但它在文本周围用一点空间绘制文本。知道如何在没有填充的情况下绘制字符串,只有文本的路径吗?

我的代码是这样的:
GraphicsPath gp = new GraphicsPath();
gp.AddString(text, font.FontFamily, (int)font.Style, font.Size,
    boundsRectangle, format);
g.DrawPath(pen, gp);

如何绘制没有填充的字符串

正在发生的事情是在幕后它可能是使用Graphics.MeasureString(),从文档:

GDI+在显示的每个字符串的两端添加少量(1/6 em)。这1/6 em允许>带有突出末端的字形(如斜体'f'),并且也给GDI+少量的余地来帮助网格适配扩展。

DrawString的默认动作将在显示相邻运行时对您不利:

首先,默认的StringFormat在每个输出的两端添加了额外的1/6 em;其次,当网格安装宽度小于设计时,允许管柱收缩最多一小时。为了避免这些问题:

总是给MeasureString和DrawString传递一个基于typegraphic>StringFormat (GenericTypographic)的StringFormat。设置图形TextRenderingHint为TextRenderingHintAntiAlias。这种渲染方法使用抗混叠和亚像素字形定位来避免网格拟合的需要,因此>是固有的分辨率无关的。

所以看起来你应该能够使用正确的StringFormat来解决这个问题。