【问题标题】:GDI+: Draw underlined space with DrawStringGDI+:使用 DrawString 绘制带下划线的空格
【发布时间】:2011-07-15 15:01:12
【问题描述】:

你好,

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

我没有找到用特殊宽度绘制下划线空间的解决方案。

感谢您的帮助。

【问题讨论】:

    标签: gdi+ drawstring


    【解决方案1】:

    这并不让我特别惊讶。这就是我所期望的行为。 GDI+ 将按预期为与文本字符串内嵌的空格绘制下划线。问题是,包含 only 空格的字符串没有长度,因此没有下划线。

    那么,问题是,为什么需要画带下划线的空白? DrawLine 怎么了?

    【讨论】:

    • 您好,谢谢您的回答。我需要在空格下划线的原因如下:我有类似我自己的编辑字段的东西。在这个字段中,我可以输入字母等。在此编辑字段中,您还可以进行一些格式定义,例如对齐。例如对齐对齐需要单独打印我的编辑字段中的所有单词。所以我计算了空间的宽度并计算了单词的位置。如果文字要加下划线,当然文字之间的空格也要加下划线。
    【解决方案2】:

    GDI+ 会将下划线绘制到尾随空白处,与 GDI TextOut 的行为相比,这通常是可取的;但是,如果您将任何不可见的非空白字符附加到您传递给 DrawString 的字符串(如 U+200B 零宽度空格甚至像 U+007F 这样的控制字符),那么最后一个字符将不再是空格,所有空格有下划线。这比尝试自己计算行长更简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 2012-02-10
      • 2015-03-23
      • 1970-01-01
      • 2011-07-12
      相关资源
      最近更新 更多