0

この問題を解決するために、DrawStringに追加のプロパティまたはパラメーターはありますか。2つの文字が同じ場所に表示されるように、幅がゼロの文字が多数あるヘブライ語フォントがあります。

この例は、左側に.NETの問題を示し、右側にどのように表示されるかを示しています。

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

WordとVisualStudioのテキストボックスは同じようにレンダリングされますが、SumTotalのツールブックでは正しくレンダリングされます。

これは実際には15年以上前の非常に古いTrueTypeフォントであり、右から左へのフォントでもありません。新しいフォントに切り替えることもできますが、その場合は、すべての文字と母音を再マップするプログラムを作成する必要があります。

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 に答える