Могу ли я ограничить высоту WPF TextBlock двумя строками? - PullRequest
5 голосов
/ 26 марта 2009

Я только что получил требование отобразить длину текста в элементе управления. Элемент управления имеет определенную ширину и высоту до 2 строк. Если он рендерит длиннее двух строк, в конце строки будет отображаться только «...»

Возможно ли это с любым стандартным элементом управления WPF?

Спасибо, D.

Ответы [ 2 ]

15 голосов
/ 26 марта 2009

Установите высоту текстового блока, чтобы он был достаточно высоким, чтобы поместиться в две строки. Установите для TextWrapping значение Wrap, а для TextTrimming значение CharacterEllipsis или WordEllipsis.

Для шрифта Segoe UI 12Pt по умолчанию я нахожу, что это делает

<TextBlock TextWrapping="Wrap" Height="40" TextTrimming="CharacterEllipsis" />

Вы могли бы, вероятно, сделать некоторый код, чтобы определить высоту, которая должна быть для определенного шрифта, если хотите.

0 голосов
/ 26 марта 2009

Это не стандартное поведение, которое я когда-либо обнаруживал, но опять же я не искал его.

Одна из возможностей - использовать моноширинный шрифт в элементе управления TextArea, а затем, если строка больше, чем сколько символов помещается в области, отображать только правильные N символов с эллипсами

...