Подтвердить что ты не робот

TextTrimming с помощью Ellipsis и Colon

Это относительно простой вопрос:

Я могу обрезать текст с эллипсисом, используя это:

<TextBlock Text="{Binding}" TextTrimming="CharacterEllipsis"/>

это дало бы мне что-то вроде:

"Это предложение слишком длинное"

= >

"Это предложение i..."

Это все замечательное и денди, но я действительно хочу:

"Это предложение...:" / "Это предложение...:"

То, что я ищу, - это двоеточие после эллипсов. Есть ли простой способ достичь этого?

EDIT:

извините за путаницу.

Я хочу изменить строку эллипсиса по умолчанию от "..." до "...:". Кроме того, я собираюсь включить двоеточие в текстовую строку. Таким образом, я всегда буду показывать двоеточие. Кроме того, все должно быть на одной линии в каждой ситуации.

вот несколько приемлемых результатов:

достаточно короткое:

тоже слишком...:

4b9b3361

Ответ 1

Это работает, но мне нужно добавить некоторое дополнение, чтобы двоеточие всегда оставалось видимым:

<TextBlock Padding="0,0,5,0" >
    <TextBlock TextTrimming="CharacterEllipsis">Lorem ipsum dolor sit amet, consectetur adipisicing </TextBlock>
    <TextBlock>:</TextBlock>
</TextBlock>

Ответ 2

Используйте два текстовых блока с примером эллипсов в первом и двоеточием во втором.

Update:

Похоже, что это довольно простой вопрос с большим количеством осложнений.

Возможно, у вас возникнет соблазн иметь некоторые текстовые блоки, первый с целевым текстом, а еще два отображения ":" и "...:" и переключаться между ними с помощью преобразования значения видимости на основе того, было ли у первого TextBlock достаточно места для отображения всего текста. Это имеет возможности, но имеет потенциал для нестабильных макетов.

Только что внедрив пользовательскую панель, я могу представить возможное решение, в котором можно было бы задействовать три дочерних элемента, которые были бы тремя текстовыми блоками, описанными abovel

Пользовательская панель, унаследованная от Panel, должна переопределить два ключевых метода: Measure and Arrange.

В методе измерения все дети должны быть измерены.

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

Update:

Я попробовал пользовательскую панель, и она работала, за исключением того, что первый TextBox - это частичные части клипов.

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