WPF TextBlock Cutoff - PullRequest
       5

WPF TextBlock Cutoff

7 голосов
/ 03 апреля 2011

Привет, Гайз! У меня есть текстовый блок WPF с фиксированной шириной, скажем, 100. Если строка не умещается в ширину, последний символ всегда обрезается, поскольку все символы имеют разный размер. Я не хочу обрезать символ, вместо этого я хочу пропустить текст оттуда и просто отобразить текст без обрезания символа.

Ответы [ 2 ]

15 голосов
/ 03 апреля 2011

У вас есть пара опций для управления переносом и обрезкой текста:

  • TextWrapping может использоваться для перемещения текста на следующую строку
  • TextTrimmingможет использоваться, чтобы решить, как вырезать текст, который не помещается

TextTrimming=None (по умолчанию) будет означать, что текст, который не помещается, будет скрыт, но он может вырезать серединуперсонажа, который звучит как проблема, которую вы описываете.

TextTrimming=WordEllipsis или TextTrimming=CharacterEllipsis не будут отображать половину символа, но будут добавлять "..." в конец текста.Это, вероятно, будет выглядеть лучше для пользователей.

Если вы хотите обрезать лишние символы без добавления многоточия, вам придется использовать технику Ed S. , описанную

1 голос
/ 03 апреля 2011

Полагаю, я не совсем понимаю ваш вариант использования здесь. Моим первым предложением было бы просто динамически изменять размер вашего TextBlock. Если это невозможно, вам нужно будет определить ширину строки и манипулировать ею самостоятельно, прежде чем устанавливать ее в TextBlock (или использовать шрифт фиксированной ширины, предполагая, что вы можете знать максимальную длину строки и знаете ее).

Если вам нужно измерить ширину строки перед ее отображением, вы можете использовать для этого класс FormattedText .

...