.Net enumerar estilos de fonte winforms?

Eu tenho procurado em torno de uma maneira de listar os estilos de fonte válidos para uma determinada fonte usando a estrutura .Net (mesmo que eu precise identificar o gdi32 ou alguma outra API), pois nem todas as fontes se enquadram nos valores de enumeração System.Drawing.FontStyle (Negrito, Itálico, Regular, Strikeout, Sublinhado). Um exemplo perfeito de uma fonte que não se enquadra na fatura é a Segoe UI, que é uma fonte Microsoft TrueType, com estilos de fonte: Regular, Semibold, Leve, Negrito, Itálico e BoldItalic. Outro exemplo é Arial que possui: Regular, Estreito, Itálico, Negrito, Negrito Itálico, Negrito Negrito, Negrito Negrito Itálico e Narrow Itálico.

No Windows 7 (provavelmente o Vista também, mas não tenho uma máquina para verificar) quando você abre o explorer e navega para% SystemRoot% \ Fonts, você verá uma coluna chamada "Estilo da fonte", que lista todos os estilos disponíveis para cada fonte, o que me diz que há definitivamente uma maneira de fazer isso, pelo menos através de chamadas de API.

Por fim, estou procurando enumerar a lista FontFamily e, em seguida, listar todos os estilos de fonte para cada família. Abaixo está um código de exemplo para listar todas as famílias de fontes. Se alguém puder fornecer assistência para listar os estilos de fonte disponíveis para cada família, eu agradeceria. Se estou fazendo isso da maneira errada, estou definitivamente aberto a sugestões.

Drawing.Text.InstalledFontCollection ifc = new Drawing.Text.InstalledFontCollection();
foreach ( FontFamily ff in ifc.Families )
{
    Console.WriteLine(ff.ToString());
    // Something like this would be nice, but AFAIK nothing similar exists
    /*
    foreach ( FontStyle style in ff.Styles )
        Console.WriteLine(style.ToString());
    */
}

questionAnswers(5)

yourAnswerToTheQuestion