【发布时间】:2013-03-07 08:04:42
【问题描述】:
如何将 FontStyle 设置为 Condensed Bold ?还是浓缩粗体斜体? FontStyle 属性没有标准值以外的其他值。
我的确切字体是:Myriad Pro 字体样式:粗体压缩
如何根据这个 truetype 创建字体?
注意:字体为.OTF OpenType
【问题讨论】:
-
你使用的是 Winforms 还是 WPF
如何将 FontStyle 设置为 Condensed Bold ?还是浓缩粗体斜体? FontStyle 属性没有标准值以外的其他值。
我的确切字体是:Myriad Pro 字体样式:粗体压缩
如何根据这个 truetype 创建字体?
注意:字体为.OTF OpenType
【问题讨论】:
我认为应该这样做。
FontFamily fontFamily = new FontFamily("Condensed Bold");
Font font = new Font(
fontFamily,
16,
FontStyle.Regular,
GraphicsUnit.Pixel);
列出可用的字体系列(来自 cmets 中的链接)
private void PopulateListBoxWithFonts()
{
listBox1.Width = 200;
listBox1.Location = new Point(40, 120);
foreach ( FontFamily oneFontFamily in FontFamily.Families )
{
listBox1.Items.Add(oneFontFamily.Name);
}
}
【讨论】:
使用按位or 组合字体样式
FontStyle ItalicBoldUnderline = FontStyle.Italic | FontStyle.Bold | FontStyle.Underline;
【讨论】:
来自类似的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
【讨论】: