C# 查找文本块/文本的高度
我试着计算出飞机的高度。 我不想在某个页面上使用文本块。我只需要知道我的内容的高度 我这样尝试过,但它只返回0C# 查找文本块/文本的高度,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 {
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并设置实际的高度/宽度。