我正在使用GraphicsPath.AddString()
函数,但它会在文本周围留出一些空格。任何想法如何绘制没有填充的字符串,只有文本的路径?
我的代码是这样的:
GraphicsPath gp = new GraphicsPath();
gp.AddString(text, font.FontFamily, (int)font.Style, font.Size,
boundsRectangle, format);
g.DrawPath(pen, gp);
答案 0 :(得分:2)
正在发生的事情是它可能正在使用Graphics.MeasureString(),来自文档:
GDI +在显示的每个字符串的每一端添加少量(1/6 em)。这个1/6 em允许>用于具有悬垂末端的字形(例如斜体“f”),并且还给予GDI +少量的余地以帮助网格拟合扩展。
DrawString的默认操作在显示相邻运行时将对您不利:
首先,默认的StringFormat在每个输出的每一端添加额外的1/6 em; 其次,当网格安装宽度小于设计时,允许弦线收缩 直到他们。 为了避免这些问题:
总是将MeasureString和DrawString传递给基于印刷> StringFormat(GenericTypographic)的StringFormat。 将Graphics TextRenderingHint设置为TextRenderingHintAntiAlias。该渲染方法>使用抗锯齿和子像素字形定位来避免对网格拟合的需要,并且因此>固有地与分辨率无关。
所以看起来你应该能够使用正确的StringFormat修复它。