FontStyles不是标准的

时间:2013-03-18 20:17:50

标签: c# winforms fonts

如何将FontStyle设置为Condensed Bold?或浓缩大胆的斜体? FontStyle属性没有标准值。

我的确切字体是:Myriad Pro 字体样式:Bold Condensed

如何基于此truetype创建字体?

注意:字体是.OTF OpenType

3 个答案:

答案 0 :(得分:1)

认为这样的事情应该这样做。

FontFamily fontFamily = new FontFamily("Condensed Bold");
Font font = new Font(
   fontFamily,
   16,
   FontStyle.Regular,
   GraphicsUnit.Pixel);

列出可用的字体系列(来自评论中的链接)

private void PopulateListBoxWithFonts()
{
    listBox1.Width = 200;
    listBox1.Location = new Point(40, 120);
    foreach ( FontFamily oneFontFamily in FontFamily.Families )
    {
        listBox1.Items.Add(oneFontFamily.Name);
    }
}

答案 1 :(得分:0)

使用按位or组合FontStyles

FontStyle ItalicBoldUnderline = FontStyle.Italic | FontStyle.Bold | FontStyle.Underline;

答案 2 :(得分:0)

来自类似的answer

您能否只使用控制面板中显示的字体名称?大多数不常规,粗体或斜体的字体实际上都具有子规则类型的“常规”。如果从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);
    }

这里有一个使用Franklin Gothic Demi Cond的样本(在CP中列为“Franklin Gothic Cond Demi”)

e.Graphics.DrawString("Test", new Font("Franklin Gothic Demi Cond", 12), new Solid