如何在 .NET Core 中查找字体和字符串指标?

How to find font and string metrics in .NET Core?

我需要在 .NET Core 2 中测量字符串的宽度和高度(以像素为单位)。

在 .NET Framework 中可以使用 Graphics.MeasureString 方法完成,但在 .NET Core 中,Graphics class 不再存在。

我也试图找到一个 Font 或 FontFamily class 并提取字体大小、字体上升和字体下降,但我找不到任何类似的东西。

目前的.NET Core 版本,还在努力中,是否可以测量字符串或获取字体指标?

更新 2017 年 11 月 17 日

Windows Compatibility Pack for .NET Core is in preview as of today includes System.Drawing.Common and soon will include System.Drawing package.

可以使用 CoreCompat.System.Drawing.v2 NuGet 包,它提供 System.Drawing 基于 Mono 的程序集的跨平台实现。我目前在 Windows、Linux 和 macOS 上使用它 CI 运行,到目前为止没有大的问题。

DotNet 团队已经完成了将 System.Drawing 功能移植到 .NET Core 的工作(请参阅 CoreFX GitHub 存储库 Support Full System.Drawing Functionality on .NET Core and issue #24909 Ship .NET Framework compatibility pack 中的问题 #20325)。第一个预览版计划于 2017 年 11 月发布.

计划与 .NET Core 2.1.0 版本一起发布,并与 .NET Framework Microsoft 兼容包一起发布。软件包将支持除 Windows.

上的 UWP 以外的所有主要平台

Graphics.MeasureString功能实现here

我是 CoreCompat.System.Drawing 的维护者。如果您使用的是 .NET Core 2.0,我建议您改用 System.Drawing.Common。虽然尚未发布,但 NuGet 上已经有一个预览版,它应该是 CoreCompat.System.Drawing.

的直接替代品