Вставьте значение FontFamily в SelectedItem - PullRequest
1 голос
/ 10 марта 2012

Проект, над которым я работаю, имеет окно ChooseFont.Я добавляю все объекты FontFamily из "Fonts.SystemFontFamilies" в ListBox (fontFamilyList) по алфавиту.Мне нужно выделить сохраненный шрифт из настроек (он сохраняется в виде строки).

У меня есть следующий конструктор:

public ChooseFontWindow()
{
    InitializeComponent();

    var fonts = 
        from font in Fonts.SystemFontFamilies
        orderby font.Source
        select font;

    foreach (FontFamily f in fonts)
    {
        fontFamilyList.Items.Add(f);
    }

    fontFamilyList.SelectedItem = Properties.Settings.Default.FontFamily;
}

1 Ответ

0 голосов
/ 10 марта 2012

Вот возможный ответ.Я не знаю, решит ли это проблему без дополнительной информации.

public ChooseFontWindow()
{
    InitializeComponent();

    var fonts = 
        from font in Fonts.SystemFontFamilies
        orderby font.Source
        select font;

    foreach (FontFamily f in fonts)
    {
        fontFamilyList.Items.Add(f);
    }

    fontFamilyList.SelectedIndex = fonts.ToList().IndexOf(Properties.Settings.Default.FontFamily);
}

Если это не сработает, попробуйте следующее:

public ChooseFontWindow()
{
    InitializeComponent();

    var fonts = 
        from font in Fonts.SystemFontFamilies
        orderby font.Source
        select font;

    foreach (FontFamily f in fonts)
    {
        fontFamilyList.Items.Add(f);
    }

    fontFamilyList.SelectedItem = fonts.FirstOrDefault(ff => ff.Name == Properties.Settings.Default.FontFamily.Name);
}
...