Share via


Comment : énumérer les polices installées

La InstalledFontCollection classe hérite de la FontCollection classe de base abstraite. Vous pouvez utiliser un InstalledFontCollection objet pour énumérer les polices installées sur l’ordinateur. La Families propriété d’un InstalledFontCollection objet est 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 Name propriété de chaque FontFamily objet dans le tableau retourné par la Families propriété. À mesure que les noms de famille sont récupérés, ils sont concaténés pour former une liste séparée par des virgules. Ensuite, la DrawString méthode de la Graphics classe dessine la liste séparée par des virgules dans un rectangle.

Si vous exécutez l’exemple de code, la sortie est similaire à celle illustrée dans l’illustration suivante :

Screenshot that shows the installed font families.

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)

Compilation du code

L'exemple précédent est conçu pour une utilisation avec Windows Forms et nécessite PaintEventArgse, qui est un paramètre de PaintEventHandler. En outre, vous devez importer l’espace System.Drawing.Text de noms.

Voir aussi