Compartir a través de


Cómo: Enumerar fuentes instaladas

La clase InstalledFontCollection hereda de la clase base abstracta FontCollection. Puede usar un InstalledFontCollection objeto para enumerar las fuentes instaladas en el equipo. La Families propiedad de un InstalledFontCollection objeto es una matriz de FontFamily objetos .

Ejemplo

En el ejemplo siguiente se enumeran los nombres de todas las familias de fuentes instaladas en el equipo. El código recupera la propiedad Name de cada objeto FontFamily del array que devuelve la propiedad Families. A medida que se recuperan los nombres de familia, se concatenan para formar una lista separada por comas. A continuación, el DrawString método de la Graphics clase dibuja la lista separada por comas en un rectángulo.

Si ejecuta el código de ejemplo, la salida será similar a la que se muestra en la ilustración siguiente:

Captura de pantalla que muestra las familias de fuentes instaladas.

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);
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)

Compilar el código

El ejemplo anterior está diseñado para su uso con Windows Forms y requiere PaintEventArgse, que es un parámetro de PaintEventHandler. Además, debe importar el System.Drawing.Text espacio de nombres.

Consulte también