如何使用TextRenderer.DrawText在开始时获取省略号

时间:2009-05-26 16:04:36

标签: .net winforms

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

我已经考虑过根据TextRenderer.MeasureText逐渐缩短字符串,但我很担心表现。当然有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

不应缩短,而应以“二元搜索”的方式延长。

由于字符串可能比可见区域长得多,如果从一个字符开始,每次迭代增长2倍,一旦超出长度限制,则每次缩小几个字符,你应该有一个高效的截断算法。