예제 #1
0
        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));
            });
        }