【发布时间】:2011-07-15 15:01:12
【问题描述】:
你好,
我想在 GDI+ 中绘制一个对齐的文本。
当此文本带有下划线时,我遇到了问题,使用 DrawString 方法:
- 如果你给这个方法一个带有空格的字符串并且格式带下划线,它什么也不画,因为空格没有宽度。
- 如果你有一个合理的文本,也许空格比正常的宽。
我没有找到用特殊宽度绘制下划线空间的解决方案。
感谢您的帮助。
【问题讨论】:
标签: gdi+ drawstring
你好,
我想在 GDI+ 中绘制一个对齐的文本。
当此文本带有下划线时,我遇到了问题,使用 DrawString 方法:
- 如果你给这个方法一个带有空格的字符串并且格式带下划线,它什么也不画,因为空格没有宽度。
- 如果你有一个合理的文本,也许空格比正常的宽。
我没有找到用特殊宽度绘制下划线空间的解决方案。
感谢您的帮助。
【问题讨论】:
标签: gdi+ drawstring
这并不让我特别惊讶。这就是我所期望的行为。 GDI+ 将按预期为与文本字符串内嵌的空格绘制下划线。问题是,包含 only 空格的字符串没有长度,因此没有下划线。
那么,问题是,为什么需要画带下划线的空白? DrawLine 怎么了?
【讨论】:
GDI+ 会将下划线绘制到尾随空白处,与 GDI TextOut 的行为相比,这通常是可取的;但是,如果您将任何不可见的非空白字符附加到您传递给 DrawString 的字符串(如 U+200B 零宽度空格甚至像 U+007F 这样的控制字符),那么最后一个字符将不再是空格,所有空格有下划线。这比尝试自己计算行长更简单。
【讨论】: