6 Stimmen

C# Alle verfügbaren FontFamily abrufen

Ich habe ein Eingabefeld, in das die Benutzer eine Schriftart eingeben, und es speichert die Eingaben als JPEG. Alles funktioniert gut. Aber wenn sie einen Schriftnamen wie ' times new roman ' muss richtig großgeschrieben werden zu ' Times New Roman ' oder es wird nicht funktionieren!

Kann ich alle verfügbaren Schriftarten irgendwie wiederholen und ihnen als Dropdown-Liste präsentieren, damit es keine Rechtschreibprobleme gibt und sie definitiv nur Schriftarten auf dem System verwenden?

10voto

kyrylomyr Punkte 11484

Verwenden Sie einfach den nächsten Code:

FontFamily[] ffArray = FontFamily.Families;
foreach (FontFamily ff in ffArray)
{
    //Add ff.Name to your drop-down list
}

7voto

ceyko Punkte 4832

Oder Sie können sich direkt mit ihm verbinden:

<ComboBox ItemsSource="{Binding Source={x:Static Fonts.SystemFontFamilies}}" />

2voto

Gary Kindel Punkte 16334

Ich habe Schriftartenlisten an mehreren Stellen in meiner Anwendung, so dass ich gerne Ich möchte die Liste einmal laden und dann wiederverwenden, um sie an die Steuerelemente zu binden.

public List<string> GetFontFamilies()
{
    List<string> fontfamilies = new List<string>();                                   
    foreach (FontFamily family in FontFamily.Families)
    {
        fontfamilies.Add(family.Name);
    }
    return fontfamilies;       

}

0voto

ThisGuy Punkte 2165

Das ist so ziemlich das Gleiche wie Garys Antwort, nur etwas kompakter:

public static readonly List<string> FontNames = FontFamily.Families.Select(f => f.Name).ToList();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X