diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/FontFamilyAutoSuggestBox.xaml.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/FontFamilyAutoSuggestBox.xaml.cs index 7359b10..8a82519 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/FontFamilyAutoSuggestBox.xaml.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Controls/FontFamilyAutoSuggestBox.xaml.cs @@ -48,7 +48,7 @@ namespace BetterLyrics.WinUI3.Controls // FontFamilies = fontFamilies; // }); //}); - FontFamilies = FontHelper.SystemFontFamilies.OrderBy(x => x).ToList(); + FontFamilies = FontHelper.GetSystemFontFamilies(); } private void AutoSuggestBox_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args) diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/FontHelper.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/FontHelper.cs index c5d7ce2..8e8ab7e 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/FontHelper.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Helper/FontHelper.cs @@ -1,6 +1,8 @@ using Microsoft.Graphics.Canvas.Text; +using System.Collections.Generic; using System.Globalization; using System.Linq; +using System.Windows.Documents; using System.Windows.Markup; using System.Windows.Media; @@ -8,8 +10,6 @@ namespace BetterLyrics.WinUI3.Helper { public static class FontHelper { - public static string[] SystemFontFamilies => CanvasTextFormat.GetSystemFontFamilies().Order().ToArray(); - public static string GetLocalizedFontFamilyName(string sourceName, string langCode) { if (langCode == "") @@ -33,5 +33,20 @@ namespace BetterLyrics.WinUI3.Helper return sourceName; } + + public static List GetSystemFontFamilies() + { + List fontFamilies = new(); + + foreach (var font in Fonts.SystemFontFamilies) + { + if (font.FamilyNames.TryGetValue(XmlLanguage.GetLanguage("en-us"), out string englishFamilyName)) + { + fontFamilies.Add(englishFamilyName); + } + } + + return fontFamilies.Order().ToList(); + } } } diff --git a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/Settings/LyricsStyleSettings.cs b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/Settings/LyricsStyleSettings.cs index 0ca45e6..cad0abb 100644 --- a/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/Settings/LyricsStyleSettings.cs +++ b/BetterLyrics.WinUI3/BetterLyrics.WinUI3/Models/Settings/LyricsStyleSettings.cs @@ -34,8 +34,8 @@ namespace BetterLyrics.WinUI3.Models.Settings [ObservableProperty][NotifyPropertyChangedRecipients] public partial double LyricsLineSpacingFactor { get; set; } = 0.5; - [ObservableProperty][NotifyPropertyChangedRecipients] public partial string LyricsCJKFontFamily { get; set; } = FontHelper.SystemFontFamilies.FirstOrDefault() ?? ""; - [ObservableProperty][NotifyPropertyChangedRecipients] public partial string LyricsWesternFontFamily { get; set; } = FontHelper.SystemFontFamilies.FirstOrDefault() ?? ""; + [ObservableProperty][NotifyPropertyChangedRecipients] public partial string LyricsCJKFontFamily { get; set; } = "Arial"; + [ObservableProperty][NotifyPropertyChangedRecipients] public partial string LyricsWesternFontFamily { get; set; } = "Arial"; [ObservableProperty][NotifyPropertyChangedRecipients] public partial int PlayingLineTopOffset { get; set; } = 50; // 50 %