我尝试计算TextBlock的高度。 我不想在某些页面上使用Textblock。我只需知道我的内容的高度。
我试过这种方式,但它只返回0
private static double CalculateContentHeight(string content, double width, double fontSize)
{
//Nur einen Textblock ggf. um Ressourcen zu sparen
TextBlock textblock = new TextBlock
{
FontSize = fontSize,
Text = content,
TextWrapping = TextWrapping.Wrap,
MaxWidth = width,
Height = Double.NaN
};
return textblock.ActualHeight;
}
如果我在XAML中使用现有的TextBlock,只需:
MyXAMLTextBlock.MaxWidth = 7;
double height = MyXAMLTextBlock.ActualHeight;
我得到了合适的价值。
我知道Meassure()和Arrange()有可能像Example一样,但Meassure(尺寸)采用尺寸参数,我没有它的高度。
我知道您可以使用Double.Nan在Auto上设置大小,但它不能用
编译double height = 9;
Size s = new Size(height, Double.Nan);
也许你可以帮助我,非常感谢。
答案 0 :(得分:3)
我不知道你为什么要这样做。但有了Measure和Arrange,就有可能:
在返回ActualHeight之前,只需运行这两行:
textblock.Measure(new Size());
textblock.Arrange(new Rect());
希望我能帮到你