自定义字体样式与图形

Haw*_*xby 1 .net c# windows fonts gdi+

我有以下字体列表: 字体列表

我没有使用它们的问题

new Font("XXXX Sans", 21, FontStyle.Bold, GraphicsUnit.Pixel)
Run Code Online (Sandbox Code Playgroud)

但是,当我需要使用像光这样的非标准字体样式时,我该怎么办?所提供的只是一个枚举,这是不合适的.

Chr*_*aas 5

你能不能只使用控制面板中显示的字体名称?大多数不常规,粗体或斜体的字体实际上都具有子规则类型的"常规".如果从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);
        }
Run Code Online (Sandbox Code Playgroud)

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

e.Graphics.DrawString("Test", new Font("Franklin Gothic Demi Cond", 12), new SolidBrush(Color.Red), 25, 25);
Run Code Online (Sandbox Code Playgroud)