Procedura: enumerare i tipi di carattere installatiHow to: Enumerate Installed Fonts

Il InstalledFontCollection classe eredita la FontCollection classe base astratta.The InstalledFontCollection class inherits from the FontCollection abstract base class. È possibile utilizzare un InstalledFontCollection oggetto per enumerare i tipi di carattere installati nel computer.You can use an InstalledFontCollection object to enumerate the fonts installed on the computer. Il Families proprietà di un InstalledFontCollection oggetto è una matrice di FontFamily oggetti.The Families property of an InstalledFontCollection object is an array of FontFamily objects.

EsempioExample

Nell'esempio seguente elenca i nomi di tutte le famiglie di caratteri installate nel computer.The following example lists the names of all the font families installed on the computer. Il codice recupera il Name proprietà di ogni FontFamily oggetto nella matrice restituita dal Families proprietà.The code retrieves the Name property of each FontFamily object in the array returned by the Families property. Come vengono recuperati i nomi di famiglia, questi vengono concatenati all'elenco di form separati da virgola.As the family names are retrieved, they are concatenated to form a comma-separated list. Il DrawString metodo la Graphics classe disegna l'elenco delimitato da virgole in un rettangolo.Then the DrawString method of the Graphics class draws the comma-separated list in a rectangle.

Se si esegue il codice di esempio, l'output sarà simile a quanto illustrato nella figura seguente.If you run the example code, the output will be similar to that shown in the following illustration.

I tipi di carattere installatiInstalled Fonts

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)

Compilazione del codiceCompiling the Code

L'esempio precedente è progettato per l'uso con Windows Form e richiede PaintEventArgs e, un parametro di PaintEventHandler.The preceding example is designed for use with Windows Forms, and it requires PaintEventArgs e, which is a parameter of PaintEventHandler. Inoltre, è necessario importare il System.Drawing.Text dello spazio dei nomi.In addition, you should import the System.Drawing.Text namespace.

Vedere ancheSee Also

Uso di tipi di carattere e testoUsing Fonts and Text