0

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

我指定字体系列、字体大小、字体样式、图形单位。

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

这可以用代码修复吗?
可以使用 Windows 设置解决此问题吗?

4

2 回答 2

1

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

Dim textSize As SizeF = graphic.MeasureString("text to measure", Me.Font, Me.ClientRectangle.Width)
于 2012-05-11T15:32:29.083 回答
0

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

也可以在代码中通过修改graphic.TextRenderingHint来改变

于 2012-05-11T17:45:38.210 回答