GDI +:使用DrawString绘制带下划线的空间

时间:2011-03-15 08:48:20

标签: gdi+ drawstring

喂,

我想在GDI +中绘制一个合理的文本。 当这个文字加下划线时,我有一个问题,使用DrawString方法:
- 如果你给这个方法一个带有空格和格式加下划线的字符串,它什么都不绘制,因为空格没有宽度。
- 如果你有一个对齐的文本,那么空格可能比正常宽。

我找不到任何解决方案来绘制带有特殊宽度的带下划线的空间。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

GDI +会将下划线绘制到尾随空格,与GDI TextOut的行为相比,这通常是理想的事物;但如果你将任何不可见的非空白字符附加到传递给DrawString的字符串(如U + 200B零宽度空间甚至是U + 007F之类的控制字符),那么最后一个字符将不再是空格,而是所有空格有下划线。这比试图自己计算线长度要脆弱。

答案 1 :(得分:0)

这并不特别让我感到惊讶。这就是我期望的行为。对于与一串文本一致的空格,GDI +将按预期绘制下划线。问题是,一个只包含 空格的字符串没有长度,因此没有加下划线。

所以,问题是,为什么需要绘制带下划线的空格? DrawLine出了什么问题?