.net DrawString希伯来语字体,带有零宽字符

时间:2010-10-24 21:07:31

标签: c# visual-studio-2010 graphics fonts drawstring

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);

1 个答案:

答案 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

相关问题