WinRT如何获取给定字符串的像素宽度

本文关键字:字符串 像素 何获取 获取 WinRT | 更新日期: 2023-09-27 18:07:53

这里有一个解决方案:

FormattedText

但是,唉,这在WinRT中不支持。在WinRT中是否有替代/替代?

WinRT如何获取给定字符串的像素宽度

从这个答案中得出以下解决方案:在WinRT中计算字体基线

private double GetBaselineOffset(double size, FontFamily family = null, FontWeight? weight = null, FontStyle? style = null, FontStretch? stretch = null)
{
    var temp = new TextBlock();
    temp.FontSize = size;
    temp.FontFamily = family ?? temp.FontFamily;
    temp.FontStretch = stretch ?? temp.FontStretch;
    temp.FontStyle = style ?? temp.FontStyle;
    temp.FontWeight = weight ?? temp.FontWeight;
    var _size = new Size(10000, 10000);
    var location = new Point(0, 0);
    temp.Measure(_size);
    temp.Arrange(new Rect(location, _size));
    return temp.BaselineOffset;
}

我设法用HACK类型的解决方案来解决这个问题。我的主要要求是为一些文本保留空间。我使用了固定的字体,并计算了每个"空白区域"所需的空间。一旦我知道了这一点,其余的都是微不足道的。