WinRT如何获取给定字符串的像素宽度
本文关键字:字符串 像素 何获取 获取 WinRT | 更新日期: 2023-09-27 18:07:53
这里有一个解决方案:
FormattedText
但是,唉,这在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类型的解决方案来解决这个问题。我的主要要求是为一些文本保留空间。我使用了固定的字体,并计算了每个"空白区域"所需的空间。一旦我知道了这一点,其余的都是微不足道的。