Как использовать TextRenderer.DrawText для получения многоточия в начале - PullRequest
2 голосов
/ 26 мая 2009

Метод TextRenderer.DrawText имеет параметр TextFormatFlags . Использование TextFormatFlags.EndEllipsis позволяет сокращать текст с помощью многоточия в конце, чтобы он помещался в доступное пространство. Тем не менее, я хочу поставить многоточие в начале. Любопытно, что для этого нет значения TextFormatFlags.

Я подумывал о постепенном сокращении строки до тех пор, пока она не будет соответствовать TextRenderer.MeasureText , но я беспокоюсь о производительности. Конечно, есть лучший способ?

1 Ответ

2 голосов
/ 26 мая 2009

Вместо того, чтобы сокращаться, вы должны удлиняться в режиме «двоичного поиска».

Поскольку строка может быть значительно длиннее видимой области, если вы начнете с одного символа и увеличитесь в 2 раза за каждую итерацию, а затем сократитесь на несколько символов за раз, когда достигнете предела длины, у вас должен быть эффективный алгоритм усечения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...