Подтвердить что ты не робот

Заполните ComboBox со списком доступных шрифтов

Как заполнить поле со списком всех доступных шрифтов в системе?

4b9b3361

Ответ 1

Вы можете использовать System.Drawing.FontFamily.Families для получения доступных шрифтов.

List<string> fonts = new List<string>();

foreach (FontFamily font in System.Drawing.FontFamily.Families)
{
    fonts.Add(font.Name);
}

// add the fonts to your ComboBox here

Ответ 2

Не уверен, зачем нам foreach здесь.

IList<string> fontNames = FontFamily.Families.Select(f => f.Name).ToList();

Ответ 3

Использовать установленный класс коллекции шрифтов:

http://msdn.microsoft.com/en-us/library/system.drawing.text.installedfontcollection.aspx

Это альтернативный и эквивалентный подход к ответу от Заха Джонсона.

List<string> fonts = new List<string>();
InstalledFontCollection installedFonts = new InstalledFontCollection();          
foreach (FontFamily font in installedFonts.Families)
{               
    fonts.Add(font.Name);
}

Ответ 4

Это простой способ сделать это. Он включает в себя два comboboxes 1 для имени шрифта и один для размера шрифта

 public FontFamily[] Families { get; }


 private void Form1_Load(object sender, EventArgs e)
    {

        foreach (FontFamily oneFontFamily in FontFamily.Families)
        {
            comboBox1.Items.Add(oneFontFamily.Name);
        }

        comboBox1.Text = this.richTextBox1.Font.Name.ToString();
        comboBox2.Text = this.richTextBox1.Font.Size.ToString();

        richTextBox1.Focus();

    }

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
    {

         float size = Convert.ToSingle(((ComboBox)sender).Text);

        richTextBox1.SelectionFont = new Font(richTextBox1.Font.FontFamily, size);
    }

Ответ 5

ComboBox1.ItemsSource = new InstalledFontCollection().Families;

и в первый раз выбранный элемент:

private void Combo1_Loaded(object sender, RoutedEventArgs e)
{
    ComboBox1.Text = "Tahoma";
}

Ответ 6

Вы можете просто привязать как это:

ItemsSource="{Binding Source={x:Static Fonts.SystemFontFamilies}}"