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);
答案 0 :(得分: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