0

我正在使用经典的 DrawString 方法在 WinForms 应用程序中输出文本。一个典型的调用如下所示:

g.DrawString(text, font, brush, new Rectangle(x, y, width, height), stringFormat);

如果 stringFormat.Trimming 等于 StringTrimming.EllipsisCharacter,如果文本被剪裁并使用相同左/上/高的矩形,文本会突然向上“跳跃”1 个像素:

在此处输入图像描述

这发生在 MS Sans Serif 或 Courier New 等许多标准字体上,但不会发生在 Segoe UI 等其他标准字体上。更奇怪的是,如果我们为 stringFormat.FormatFlags 指定 StringFormatFlags.DirectionRightToLeft,就可以避免这种影响。

这是 GDI+ 的一个已知问题吗,是否有解决方法?

PS 在为 .NET 4.0 编译的应用程序中,在 Win 8.1 Pro 64 位中测试了所有这些。

4

0 回答 0