C# 查找文本块/文本的高度

C# 查找文本块/文本的高度,c#,xaml,windows-store-apps,C#,Xaml,Windows Store Apps,我试着计算出飞机的高度。 我不想在某个页面上使用文本块。我只需要知道我的内容的高度 我这样尝试过,但它只返回0 private static double CalculateContentHeight(string content, double width, double fontSize) { //Nur einen Textblock ggf. um Ressourcen zu sparen TextBlock textblock = new 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中的现有文本块,只需:

MyXAMLTextBlock.MaxWidth = 7;
double height = MyXAMLTextBlock.ActualHeight;
我得到了正确的价值

我知道有可能像这样使用Meassure()和Arrange(),但是Meassure(Size)使用Size参数,我没有它的高度

我知道你可以用Double.Nan在Auto上设置大小,但它不能用

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

也许你能帮我,谢谢你。

我不知道你为什么要这么做。但有了措施和安排,就有可能:

在返回实际高度之前,只需运行这两行:

textblock.Measure(new Size());
textblock.Arrange(new Rect());

希望我能帮助你,我不知道你为什么要这样做。但有了措施和安排,就有可能:

在返回实际高度之前,只需运行这两行:

textblock.Measure(new Size());
textblock.Arrange(new Rect());

希望我能帮助你

谢谢!我明天试试这个。我需要它来计算一个表,而不是创建它,因为它需要很多内存。使用Windows .Fund,并设置实际的高度/宽度谢谢!我明天试试这个。我需要它来创建一个表格,因为它需要很大的内存。使用Windows .Fund并设置实际的高度/宽度。