Partager via


Comment : énumérer les polices installées

Mise à jour : novembre 2007

La classe InstalledFontCollection hérite de la classe de base abstraite FontCollection. Vous pouvez utiliser un objet InstalledFontCollection pour énumérer les polices installées sur l'ordinateur. La propriété Families d'un objet InstalledFontCollection représente un tableau d'objets FontFamily.

Exemple

L'exemple suivant répertorie les noms de toutes les familles de polices installées sur l'ordinateur. Le code récupère la propriété Name de chaque objet FontFamily dans le tableau retourné par la propriété Families. Lorsque les noms de famille sont récupérés, ils sont concaténés pour former une liste avec la virgule comme séparateur. Ensuite, la méthode DrawString de la classe Graphics dessine la liste séparée par des virgules dans un rectangle.

Si vous exécutez l'exemple de code, la sortie sera analogue à celle présentée dans l'illustration suivante.

Polices installées

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

Compilation du code

L'exemple précédent est destiné à une utilisation avec Windows Forms et nécessite PaintEventArgs e, qui est un paramètre de PaintEventHandler.

Voir aussi

Autres ressources

Utilisation de polices et de texte