我尝试计算 TextBlock 的高度. 我不想在某些页面上使用文本 block 。我只需要知道我的内容的高度。
我这样试过,结果只返回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(Size) 需要尺寸参数,我没有它的高度。
我知道您可以使用 Double.Nan 设置 Auto 的大小,但它无法编译
double height = 9;
Size s = new Size(height, Double.Nan);
也许你可以帮助我,非常感谢。
最佳答案
我不知道你为什么要这样做。但是使用 Measure and Arrange 可以:
只需在返回 ActualHeight 之前运行这两行:
textblock.Measure(new Size());
textblock.Arrange(new Rect());
希望能帮到你
关于c# - 查找文本 block /文本的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25117279/