Определить, какая часть шрифта отображается слева от черного ящика? - PullRequest
0 голосов
/ 12 января 2011

У меня есть шрифт - 'Saginaw', который при рендеринге имеет некоторую часть глифа слева от начальной позиции / поля:

[Изображение здесь] http: // i.imgur.com / 1lP3C.png

Приведенный выше фрагмент кода относится к шрифту в Photoshop .. Я сделал «выбрать все», чтобы показать черный ящик ..

Я пытаюсь выяснить, чтоэто смещение / значение [часть W, отображаемая слева за рамкой]

До сих пор я изучал System.Windows.Media.GlyphTypeFace , что очень интересноПолезности, включая AdvancedWidths, LeftSideBearings, DistancesFromHorizontBaselienToBlackBottom и т. д.

Однако я не совсем понимаю, как применять значения, которые я вижу из шрифта, для вычисления значения, соответствующего этому смещению.

В конце я пытаюсь взять метаданные этого шрифта и визуализировать шрифт / текст в Flex RichEditableTextArea, где извилистая левая сторона шрифта обрезается:

[ИзображениеЗдесь] http: // i.imgur.com / Hjm7V.png

Я еще не видел ничего во Flex TLF, которое позволяло бы мне смотреть на эту часть данных Font.

[Я уверен, что это, вероятно, просто скрывается отя]

С помощью экспериментов, которые я видел, я могу установить отступ в RichEditableTextArea, чтобы переместить шрифт, затем он отрисовывает отрезанную часть внутри себя.

Я надеялсянайти количество шрифта / глифа «сдвиг влево»;затем примените соответствующие отступы для компенсации.

[Альтернативно, если кто-то знает, как заставить RichEditableTextArea визуализировать ту часть, которая обрезается, это также будет работать!]

Если у кого-то естья буду глубоко признателен за любую идею!

- Эрик

1 Ответ

0 голосов
/ 12 января 2011

Вы уверены, что LeftSideBearings не покрывает это?

Значение свойства

Тип: System.Collections.Generic.IDictionary Объект IDictionaryкоторый содержит пары ключ / значение, которые представляют информацию о расстоянии для глифов.Ключом является UInt16, который идентифицирует индекс глифа.Значение Double представляет расстояние.

Примечания

Значение LeftSideBearings положительно, когда левый край черного ящика находится внутри прямоугольника выравнивания, определенного шириной перемещения и высотой ячейки шрифта.

Значение LeftSideBearings является отрицательным, когда левый край черного ящика нависает над прямоугольником выравнивания.

Это должно дать вам необходимое число в качестве отрицательного значения.

...