2012-03-21 10 views
0

あらかじめ定義された幅とテキストでテキストブロックを実装し、残りの部分に特定の先頭文字を埋めなければなりません。テキストボックスはコントロールの幅に繰り返しチャーを塗りつぶします

例:テキストは "toto"で、テキストブロックの長さは1.5インチで、先頭の文字は "。"になります。

totoのようになります。 。 。 。 。 。 。 。

テキストブロックのwithのリマインダーのテキストを繰り返すようにテキストブロックに指示する方法はありますか?

自分でコードを記述する必要はありますか?

おかげ

ジャンマルク

+1

「道」が背後にあるか、後に来ることを意味するので、あなたが実際には、「文字を末尾に」それらを呼び出す必要がありますので、この文脈での「リード」は、前に来ることを意味します。 –

答えて

0

あなたが自分でこれを実装する必要があります。 TextBlockはテキストのトリミングをサポートしていますが、テキストが長すぎて収まらない場合は省略記号( "...")が自動的に表示されますが、それは要件を満たしません。

FormattedTextを使用して、プライマリテキストの幅( "toto")を決定し、その後に末尾のテキスト( "。")の幅を決定することができます。後に続くテキストを何回繰り返す必要があるかを把握するために、簡単な数学を行うことができます。

擬似コード:FYI

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