0

DrawString 中是否有任何其他属性或参数来解决此问题。我有一个带有许多零宽度字符的希伯来字体,因此两个字符应该呈现在同一个位置。

此示例显示左侧的 .NET 问题,右侧应为:

http://hebrewresources.com/html5/images/rendering_issue.png

Word 和 Visual Studio 文本框的呈现方式相同,但在 SumTotal'sToolbook 中,它可以正确呈现。

这实际上是 15 年前的一种非常古老的真字体,甚至不是从右到左的字体。我可能会切换到更新的字体,但是我必须编写一个程序来重新映射每个字符和元音。

objGraphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
objGraphics.DrawString(text, objFont, Brushes.Black, border / 2, border / 2);
4

1 回答 1

0

你不得不:

objGraphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
var stringFormat = new StringFormat(StringFormatFlags.DirectionRightToLeft);
float x = border / 2;
float y = border / 2;
objGraphics.DrawString(text, objFont, Brushes.Black, x, y, stringFormat);

如果它不起作用,您将不得不尝试其他标志:

http://msdn.microsoft.com/en-us/library/system.drawing.stringformatflags(v=VS.71).aspx

于 2010-10-24T21:21:52.103 回答