查找Textblock / Text的高度



我试着计算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()就像在这个例子中,但Meassure(Size)的大小参数,我没有它的高度。

我知道你可以设置大小为自动与双倍。Nan,但是它不能用

编译
double height = 9;
Size s = new Size(height, Double.Nan);

也许你可以帮助我,非常感谢。

我不知道你为什么这样做。但是有了Measure and Arrange,这是可能的:

在返回ActualHeight:

之前运行这两行
textblock.Measure(new Size());
textblock.Arrange(new Rect());

希望我能帮到你

最新更新