2012-03-21 1 views
0

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

Ex: текст будет «toto», а текстовый блок будет иметь 1,5 дюйма, а ведущие символы будут «.».

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

тото. , , , , , , ,

Есть ли какой-либо способ в текстовом блоке, чтобы он повторил текст для напоминания о текстовом блоке?

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

Благодаря

Jean-Marc

+1

FYI, «привести» в данном контексте означает прийти раньше, так что вы на самом деле должны называть их «завершающие символы», так как «след» означает прийти позади или после. –

ответ

0

Вы бы осуществить это самостоятельно. 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; 
Смежные вопросы