Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinRT如何获取给定字符串的像素宽度_C#_Windows Runtime_Microsoft Metro_Winrt Xaml_Pixels - Fatal编程技术网

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

C# WinRT如何获取给定字符串的像素宽度,c#,windows-runtime,microsoft-metro,winrt-xaml,pixels,C#,Windows Runtime,Microsoft Metro,Winrt Xaml,Pixels,这里有一个解决方案: 但遗憾的是,WinRT不支持这一点。WinRT中是否有替代品?我设法用一种黑客式的解决方案来解决这个问题。我的主要要求是为一些文本预留空间。我使用固定字体,并计算每个“空白”所需的空间。一旦我知道了这一点,剩下的就无关紧要了。下面的解决方案取自这个答案: 我也有同样的问题,但不知道如何通过阅读你的答案来解决。 private double GetBaselineOffset(double size, FontFamily family = null, FontWeigh

这里有一个解决方案:


但遗憾的是,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;
}