DrawString在一台PC上更宽

时间:2012-05-11 15:12:32

标签: .net vb.net gdi+

我正在使用graphic.DrawString来绘制一个字符串。

我指定字体系列,字体大小,字体样式,图形单元。

一切都适用于50台计算机,但只有一台,字体“更大胆”。 字符高度相同但由于某种原因“像素”是宽度的两倍。

这可以用代码修复吗?
可以使用Windows设置来修复它吗?

2 个答案:

答案 0 :(得分:1)

可以通过确保在所有计算机上安装相同的适用字体并确保Windows个性化设置相同来修复它,但最终,您的代码绝不应该假设DrawString将始终在每个上绘制相同宽度的文本机。字体是可变的,因此当您选择字体时,每台计算机上使用的实际字体可能会有所不同。如果可能,您应该以一种处理宽度不同的文本的方式编写应用程序代码。您可以通过调用Graphics.MeasureString来获取文本的宽度,例如:

Dim textSize As SizeF = graphic.MeasureString("text to measure", Me.Font, Me.ClientRectangle.Width)

答案 1 :(得分:0)

我能够修复它,将“使用以下方法平滑屏幕字体的边缘”从“清除类型”更改为“标准”。

也可以通过修改graphic.TextRenderingHint

在代码中进行更改