代码之家  ›  专栏  ›  技术社区  ›  Wim Coenen

如何使用textrender.drawtext在开始时获取省略号

  •  2
  • Wim Coenen  · 技术社区  · 16 年前

    这个 TextRenderer.DrawText 方法有 TextFormatFlags 参数。使用 TextFormatFlags.EndEllipsis 允许您在文本末尾使用省略号缩写文本,使其适合可用空间。不过,我想把省略号放在开头。奇怪的是,没有 TextFormatFlags 这样做的价值。

    我已经考虑过自己逐渐缩短绳子,直到它符合 TextRenderer.MeasureText 但我担心表现。当然有更好的方法吗?

    1 回复  |  直到 11 年前
        1
  •  2
  •   Blorgbeard    11 年前

    与其缩短,不如以“二进制搜索”的方式加长。

    因为一个字符串可能比可见区域长很多,如果您从一个字符开始,每次迭代增长2倍,然后在超出长度限制后一次缩小几个字符,那么您应该有一个性能良好的截断算法。