以下是您可以尝试的,字符串宽度可以使用
TextFomratter
类(
假设网格只包含文本
)
所以您需要通过一种方法来计算最大列的宽度,这可以通过使用binding-relativepath等来计算。
private Size MeasureString(string candidate)
{
var formattedText = new FormattedText(
candidate,
CultureInfo.CurrentCulture,
FlowDirection.LeftToRight,
new Typeface(this.textBlock.FontFamily, this.textBlock.FontStyle, this.textBlock.FontWeight, this.textBlock.FontStretch),
this.textBlock.FontSize,
Brushes.Black,
new NumberSubstitution(),
1);
return new Size(formattedText.Width, formattedText.Height);
}
您可以将上述代码与
MultiConverter
若要获取对父网格对象的引用,可以将其与forloop一起使用以计算当前时间的最大宽度,则可能需要从中使用新的列宽更新所有列。
您需要将text+grid父对象作为多转换器的参数。