Текстовое поле заполняется повторяющимся символом по ширине элемента управления - PullRequest
0 голосов
/ 21 марта 2012

Мне нужно реализовать текстовый блок с предопределенной шириной и некоторым текстом, а остальное заполнить определенными начальными символами.

Пример: текст будет "toto", а текстовый блок будет иметь с1,5 дюйма, и начальные символы будут "."

результат будет выглядеть следующим образом:

toto.,,,,,,.

Есть ли какой-либо способ в текстовом блоке сказать ему повторить текст для напоминания о с текстового блока?

Или я должен сам написать код?

Спасибо

Жан-Марк

1 Ответ

0 голосов
/ 21 марта 2012

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

Вы можете использовать FormattedText определить ширину основного текста («toto»), а затем еще раз определить ширину конечного текста («.»).Затем вы можете выполнить простую математическую операцию, чтобы выяснить, сколько раз необходимо повторить завершающий текст.

Псевдокод:

var primaryFormattedText = new FormattedText(...);
var trailingFormattedText = new FormattedText(...);
var totalWidth = this.Width;
var remainderWidth = totalWidth - primaryFormattedText.Width;
var repetitionsNeeded = remainderWidth / trailingFormattedText.Width;
...