获得特定字体的fontstyles

问题描述:

我有两个组合框 combobox1 & combobox2 我得到的combobox1 所有的系统字体,我需要得到一个选择字体的fontstyles在combobox2获得特定字体的fontstyles

Dim fc As New Drawing.Text.InstalledFontCollection 
    Dim ff As FontFamily() = fc.Families() 
    For Each family As FontFamily In ff 
     Me.ComboBox1.Items.Add(family.Name) 
    Next 

当我选择的字体名称例如。蒙纳Corsiva字体只有斜体&粗斜体字体样式

在简短我需要得到有关我在combobox1选择字体fontstyles因为fontstyles为不同的字体

+0

看看这个相关的[SO问题](http://*.com/questions/3633000/net-enumerate-winforms-font-styles) –

这些字体的名称是从添加字体合成的不同以后的版式中可用的样式,特别是在OpenType中添加的样式。它们不完美地映射回旧的GDI样式。你所看到的技巧是将Monotype的姓氏修改为“Monotype Corsiva”,这是一个强烈的暗示,只有斜体(“草书”)风格可用。相同类型的映射技巧用于各种添加的粗体样式和音高,名称如“Semibold”和“Condense”。

由于只有FontStyle枚举可用于在代码中选择字体,因此使用FontFamily.IsStyleAvailable()方法检查映射哪些样式应该可以正常工作。您需要为用户预览字体外观,就像FontDialog类一样,所以对最终结果没有什么困惑。一般都喜欢FontDialog。

+0

但在vb2005 fonstyle枚举只有5 fonstyles:粗体,常规,斜体,下划线,三振出局如何检查semibold和浓缩fonstyles – Dandy