Partilhar via


Como: Enumerar fontes instaladas

O InstalledFontCollection classe herda de FontCollection abstrata classe de base. Você pode usar um InstalledFontCollection o objeto para enumerar as fontes instaladas no computador. O Families propriedade de um InstalledFontCollection objeto é uma matriz de FontFamily objetos.

Exemplo

O exemplo a seguir lista os nomes de todas as famílias de fontes instaladas no computador. O código recupera o Name propriedade de cada FontFamily a matriz retornada por objeto de Families propriedade. Como os nomes da família são recuperados, eles são concatenados à lista de forma separada um por vírgulas. Em seguida, a DrawString método o Graphics classe desenha a lista separada por vírgulas em um retângulo.

Se você executar o código de exemplo, a saída será semelhante ao mostrado na ilustração a seguir.

Fontes instaladas

        Dim fontFamily As New FontFamily("Arial")
        Dim font As New Font( _
           fontFamily, _
           8, _
           FontStyle.Regular, _
           GraphicsUnit.Point)
        Dim rectF As New RectangleF(10, 10, 500, 500)
        Dim solidBrush As New SolidBrush(Color.Black)

        Dim familyName As String
        Dim familyList As String = ""
        Dim fontFamilies() As FontFamily

        Dim installedFontCollection As New InstalledFontCollection()

        ' Get the array of FontFamily objects.
        fontFamilies = installedFontCollection.Families

        ' The loop below creates a large string that is a comma-separated
        ' list of all font family names.
        Dim count As Integer = fontFamilies.Length
        Dim j As Integer

        While j < count
            familyName = fontFamilies(j).Name
            familyList = familyList & familyName
            familyList = familyList & ",  "
            j += 1
        End While

        ' Draw the large string (list of all families) in a rectangle.
        e.Graphics.DrawString(familyList, font, solidBrush, rectF)

FontFamily fontFamily = new FontFamily("Arial");
Font font = new Font(
   fontFamily,
   8,
   FontStyle.Regular,
   GraphicsUnit.Point);
RectangleF rectF = new RectangleF(10, 10, 500, 500);
SolidBrush solidBrush = new SolidBrush(Color.Black);

string familyName;
string familyList = "";
FontFamily[] fontFamilies;

InstalledFontCollection installedFontCollection = new InstalledFontCollection();

// Get the array of FontFamily objects.
fontFamilies = installedFontCollection.Families;

// The loop below creates a large string that is a comma-separated
// list of all font family names.

int count = fontFamilies.Length;
for (int j = 0; j < count; ++j)
{
    familyName = fontFamilies[j].Name;
    familyList = familyList + familyName;
    familyList = familyList + ",  ";
}

// Draw the large string (list of all families) in a rectangle.
e.Graphics.DrawString(familyList, font, solidBrush, rectF);

Compilando o código

O exemplo anterior é projetado para uso com o Windows Forms e requer PaintEventArgs e, que é um parâmetro de PaintEventHandler. Além disso, você deve importar o System.Drawing.Text namespace.

Consulte também

Outros recursos

Usando fontes e texto