2011-03-15 184 views
1

Hallo,GDI +:使用DrawString绘制带下划线的空格

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

我发现没有解决方案绘制带有特殊宽度的带下划线的空格。

感谢您的帮助。

回答

0

这并不特别让我感到意外。这是我期望的行为。 GDI +会根据预期为符合一串文本的空格绘制下划线。问题是,仅包含的字符串空格没有长度,因此不会加下划线。

所以,问题是,为什么你需要画下划线的白色空间? DrawLine有什么不对?

+0

你好,谢谢你的回答。 究其原因,为什么我要强调空格如下: 我有一些像我自己的编辑字段。在这个领域我可以输入字母等。 在此编辑字段中,您还可以制作一些格式定义,如对齐。 例如对齐对齐需要分离地在我的编辑字段中打印所有单词。所以我计算空间的宽度并计算单词的位置。 如果文本应该加下划线,那么文本之间的空格当然也应该加下划线。 – 2011-03-30 16:33:07

2

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