0

这里有一个解决方案:

格式化文本

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

4

2 回答 2

-1

以下解决方案取自此答案: Calculate Font baseline in 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;
}
于 2013-10-19T12:43:59.217 回答
-2

我设法通过 HACK 类型的解决方案解决了这个问题。我的主要要求是为一些文本保留空间。我使用了每个“空白空间”所需的固定字体和计算空间。一旦我知道了这一点,剩下的就变得微不足道了。

于 2013-04-24T07:39:28.463 回答