private void LoadFonts() { Task.Run(() => { var x = new List <string>(); var factory = new Factory(); FontCollection fontCollection = factory.GetSystemFontCollection(false); int familyCount = fontCollection.FontFamilyCount; for (int i = 0; i < familyCount; i++) { FontFamily fontFamily = fontCollection.GetFontFamily(i); LocalizedStrings familyNames = fontFamily.FamilyNames; int index; if (!familyNames.FindLocaleName(CultureInfo.CurrentCulture.Name, out index)) { familyNames.FindLocaleName("en-us", out index); } string name = familyNames.GetString(index); x.Add(name); } Fonts = new ObservableCollection <string>(x.OrderBy(y => y)); }); }