c# - 查找文本 block /文本的高度

标签 c# xaml windows-store-apps

我尝试计算 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/

相关文章:

c# - Crystal 报表 : Showing Single Column Data into Rows of Multiple Columns

c# - Visual Studio 2013 C# 构建输出到文件

c# - 代码隐藏找不到在 XAML 中声明的控件

c# - 如何在 Windows 8 商店应用程序中更改组合框箭头颜色

通用 Windows 应用程序中的 SQLite 加密

c# - 将单例定义移动到 C# 中的 mixins

c# - 关于 .Equals() 与 == 运算符以及基元与对象的比较的混淆

wpf - 如何设置 WPF 日历中 BlackoutDates 的样式

c# - 如何使图像在 wpf 中的鼠标悬停事件中增长 x %?

c# - Windows 应用商店应用增量序列化