Comment : énumérer les polices installées
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.
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. Vous devez également importer l'espace de noms System.Drawing.Text.