wOxxOm
|
Posted: Wed Nov 29, 2006 00:56 Post subject: |
|
|
вот ответ с форума SynEdit
Quote: | это происходит потому что при изменении хайлайтера у санэдита он перещитывает ширину символа используя все возможные стили шрифта. T.е. без хайлайтера он считает ширину символа простого шрифта, без стилей. А после включения хайлайтера ширина уже рассчитываецца используя все найденные в хайлайтере стили. Т.е. если в хайлайтере хотя бы одно правило имеет стиль шрифта fsItalic, то ширина будет рассчитывацца для курсивного шрифта. Аналогично для fsBold, fsUndeline и fsStrikeout. Именно поэтому при включении хайлайтера текст разъезжаецца - увеличиваецца ширина символа (для курсивных шрифтов она как правило больше). Так же может увеличивацца и высота строк.
есть 2 варианта:
1. всегда использовать при расчёте все стили, т.е. текст всегда будет максимально широк, но "ездить" не будет.
2. не использовать при расчёте стили, т.е. текст всегда будет минимально широк и, опять же, "ездить" не будет. |
Мое решение проблемы раздвижки шрифтов простое -
заменить во всех .hgl строчки
Style="B" и Style="I"
на
Style="" |
|