Используйте два TextBlocks с примером эллипсов в первом и двоеточием во втором.
Обновление:
Похоже, это относительно простой вопрос с множеством сложностей.
Можно испытать соблазн иметь несколько текстовых блоков, первый с целевым текстом иеще два отображают «:» и «...:» и переключаются между ними с помощью преобразователя значений Visibility в зависимости от того, было ли в первом TextBlock достаточно места для отображения всего его текста.У этого есть возможности, но есть потенциал для нестабильных макетов.
Только что реализовав пользовательскую панель, я могу представить возможное решение с использованием панели, предназначенной для трех дочерних элементов, которые будут тремя описанными выше текстовыми блоками1
Пользовательская панель, унаследованная от Panel, должна переопределять два ключевых метода: Measure and Arrange.
В методе measure должны быть измерены все дочерние элементы.
В методеrange проверьте, достаточно ли местаотобразить первых двух детей и, если это так, поставить их рядом.Если недостаточно места для отображения первого дочернего размера, чтобы можно было отобразить третье дочернее пространство и выровнять третьего дочернего элемента по правому краю.
Обновление:
Я попробовал пользовательскую панель, и она работала, кромепервый текстовый блок - это отдельные символы клипа.
Окончательное решение для чистого форматирования - это метод, который корректирует строку отображения до тех пор, пока не будет помещен в выделенное пространство с соответствующим суффиксом.