C# 标准以外的字体样式

C# 标准以外的字体样式,c#,winforms,fonts,C#,Winforms,Fonts,如何将FontStyle设置为浓缩粗体?还是浓缩的粗体斜体? FontStyle属性只有标准值 我的确切字体是:Myriad Pro 字体风格:粗体浓缩 如何基于此truetype创建字体 注意:字体为.OTF OpenType使用按位或组合字体样式 FontStyle ItalicBoldUnderline = FontStyle.Italic | FontStyle.Bold | FontStyle.Underline; 我想这样的事情应该可以做到 FontFamily fontFamil

如何将FontStyle设置为浓缩粗体?还是浓缩的粗体斜体? FontStyle属性只有标准值

我的确切字体是:Myriad Pro 字体风格:粗体浓缩

如何基于此truetype创建字体


注意:字体为.OTF OpenType

使用按位
组合字体样式

FontStyle ItalicBoldUnderline = FontStyle.Italic | FontStyle.Bold | FontStyle.Underline;
我想这样的事情应该可以做到

FontFamily fontFamily = new FontFamily("Condensed Bold");
Font font = new Font(
   fontFamily,
   16,
   FontStyle.Regular,
   GraphicsUnit.Pixel);
列出可用字体系列的步骤(从注释中的链接)

从类似的角度:

你不能只使用控制面板上显示的字体名称吗?大多数不规则、粗体或斜体的字体实际上都有一个“规则”的亚家族类型。如果您从Microsoft下载字体属性扩展,您可以在“名称”选项卡上看到。控制面板列出它们的方式和.Net了解它们的方式有时是不同的,因此最好从.Net的角度列出所有字体:

var installed_fonts = new InstalledFontCollection();
    var families = installed_fonts.Families;
    var allFonts = new List<string>();
    foreach(FontFamily ff in families){
        allFonts.Add(ff.Name);
    }
    allFonts.Sort();
    foreach(String s in allFonts){
        Console.WriteLine(s);
    }

您使用的是Winforms还是WPF?它的可能副本不起作用。我的确切字体是Myriad Pro字体样式:粗体压缩如果我尝试进入字体系列“Myriad Pro粗体压缩”,我会得到一个无法找到字体的错误。您在这里检查了吗?添加了示例以列出可用的字体系列。但是标准样式不包含“粗体压缩”我知道你通过链接到其他人的答案,在某种程度上给了他们荣誉,但是逐字复制和粘贴其他人的答案是1)瘟疫和2)无用的。如果完全相同的答案适用于不同的问题,那么该问题无疑是另一个问题的重复,应该标记为重复。@CodyGray:“那么该问题无疑是另一个问题的重复,应该标记为重复”我如何标记为重复?请给我一些建议。谢谢我已经投票决定把它作为复制品关闭。将来,在问题标签下面寻找小的“flag”链接。我99%确信你可以将一个问题标记为另一个问题的副本。该标志进入版主队列,更有经验的用户可以判断他们是否同意您的评估。我完全忘记了它是如何工作的,因为我们这些已经存在了很长时间的人自己慢慢地获得了版主特权。相关阅读:@CodyGray:Ya,我看到了“flag”链接。我是新来的。谢谢你的建议:)
var installed_fonts = new InstalledFontCollection();
    var families = installed_fonts.Families;
    var allFonts = new List<string>();
    foreach(FontFamily ff in families){
        allFonts.Add(ff.Name);
    }
    allFonts.Sort();
    foreach(String s in allFonts){
        Console.WriteLine(s);
    }
e.Graphics.DrawString("Test", new Font("Franklin Gothic Demi Cond", 12), new Solid