.net DrawString Иврит шрифт с символами нулевой ширины - PullRequest
0 голосов
/ 25 октября 2010

Существуют ли какие-либо дополнительные свойства или параметры в 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 голосов
/ 25 октября 2010

Вам нужно будет:

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

...