2012-03-21 47 views
0

我必须实现一个带有预定义宽度和一些文本的文本块,并用特定的引导字符填充剩余的文本块。例如:文本将是“toto”,文本块将具有1.5英寸的长度,并且前导字符将是“。”。文本框填充重复字符到控件的宽度

结果看起来像这样:

toto。 。 。 。 。 。 。 。

是否有任何方式在文本块中告诉它重复文本提醒的文本块?

或者我必须自己写代码吗?

感谢

让 - 马克

+1

FYI,“领导”在这里指来之前,所以你实际上应该叫他们“末尾加”,因为“踪迹”是指前来背后或之后。 – 2012-03-21 14:22:38

回答

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;