GDI +: рисовать подчеркнутое пространство с DrawString - PullRequest
1 голос
/ 15 марта 2011

Алло,

Я хочу нарисовать оправданный текст в GDI +. Когда этот текст подчеркнут, у меня есть проблема с методом DrawString:
- Если вы передадите этому методу строку с пробелом и подчеркнутым форматом, он ничего не отрисовывает, потому что пробел не имеет ширины.
- Если у вас есть выровненный текст, возможно, пробелы шире, чем обычно.

Я не нашел решения нарисовать подчеркнутое пространство специальной ширины.

Спасибо за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 26 октября 2012

GDI + будет рисовать подчеркивание до конечного пробела, и это обычно желательная вещь по сравнению с поведением GDI TextOut;но если вы добавите любой невидимый непробельный символ в строку, передаваемую в DrawString (например, пробел нулевой ширины U + 200B или даже управляющий символ, такой как U + 007F), то последний символ больше не будет пробелом, а все пробелыподчеркнуты.Это менее хрупко, чем пытаться самостоятельно рассчитать длину линии.

0 голосов
/ 29 марта 2011

Это меня не особенно удивляет. Такое поведение я бы ожидал. GDI + нарисует подчеркивание, как и ожидалось, для пробелов, которые отображаются в строке со строкой текста. Проблема в том, что строка, содержащая только пробелов, не имеет длины и поэтому не подчеркивается.

Итак, вопрос в том, зачем вам рисовать подчеркнутое пустое пространство? Что не так с DrawLine?

...