首页 文章

Font不支持样式'Regular' - 在C#中使用Semibold字体

提问于
浏览
1

我有一个TrueType字体,它是“Semibold” . 我尝试在以下方法中使用它:

private FontFamily GetFontFamily(string name)
        {
            PrivateFontCollection pfc = new PrivateFontCollection();
            var path = Server.MapPath("~/Static/webfont/" + name + ".ttf");
            pfc.AddFontFile(path);
            return pfc.Families[0];
        }

        private Font GetFont(string name, int size,FontStyle style)
        {
            return new Font(GetFontFamily(name), size, style);
        }

我在哪里提供我的字体名称,并找到 Sentinel-SemiboldItalic.ttf 字体 . 作为 FontStyle ,我试图提供.NET框架中的任何选项(常规,粗体,斜体,下划线和删除线) .

无论如何,我都会收到以下错误:

Font'Sentinel Semibold'不支持'Regular'风格 .

我该怎么办?如何在C#中使用semibold字体作为字体?另外,我可以以某种方式将我的TrueType字体转换为常规字体(如果这样可以解决问题)吗?

1 回答

  • 2

    正如您在this question的答案中所读到的,每个字体都有自己的属性(例如:启用 Regular Style 或不启用),由字体创建者提供 .

    通过查看你的字体(即使只看它的名字),似乎很明显它是一个子类型,其定义特征正好是(半)粗体和斜体;因此,没有删除这些功能的选项听起来合乎逻辑 . 如果您需要非粗体,非斜体版本,则应该依赖父系列(Sentinel) .

相关问题