Wpf 文本框将重复字符填充到控件的宽度

Wpf 文本框将重复字符填充到控件的宽度,wpf,textbox,char,repeat,Wpf,Textbox,Char,Repeat,我必须实现一个具有预定义宽度和一些文本的文本块,并用特定的前导字符填充其余部分 例如:文本将是“toto”,文本块的长度为1.5英寸,铅字符为“ 结果如下所示: 托托 textblock中是否有任何方法告诉它重复一个文本以提醒textblock的使用 还是我必须自己写代码 谢谢 Jean-Marc您必须自己实现这一点TextBlock支持文本修剪,如果文本太长而无法容纳,则会自动显示省略号(“…”),但这将无法满足您的要求 您可以使用FormattedText确定主文本(“toto”)的宽度,然

我必须实现一个具有预定义宽度和一些文本的文本块,并用特定的前导字符填充其余部分

例如:文本将是“toto”,文本块的长度为1.5英寸,铅字符为“

结果如下所示:

托托

textblock中是否有任何方法告诉它重复一个文本以提醒textblock的使用

还是我必须自己写代码

谢谢


Jean-Marc

您必须自己实现这一点
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;
仅供参考,在本上下文中,“lead”的意思是在前面,所以您实际上应该称它们为“trailing character”,因为“trail”的意思是在后面或后面。