From 896938b5e6af557a690a0036b7296b11e0c33b82 Mon Sep 17 00:00:00 2001 From: JieXu Date: Thu, 28 May 2026 05:13:05 +0800 Subject: [PATCH] Update OptionSettingWindow.axaml.cs --- .../Views/OptionSettingWindow.axaml.cs | 37 ++++++++----------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml.cs b/v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml.cs index a1ee5cbe..43f817cb 100644 --- a/v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml.cs +++ b/v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml.cs @@ -155,35 +155,30 @@ public partial class OptionSettingWindow : WindowBase { var lstFonts = await GetFonts(); - lstFonts.Add(string.Empty); + lstFonts.Insert(0, string.Empty); cmbcurrentFontFamily.ItemsSource = lstFonts; + + if (ViewModel?.CurrentFontFamily.IsNullOrEmpty() == true) + { + cmbcurrentFontFamily.SelectedIndex = 0; + cmbcurrentFontFamily.Text = string.Empty; + } } private async Task> GetFonts() { + await Task.CompletedTask; + var lstFonts = new List(); try { - if (Utils.IsWindows()) - { - return lstFonts; - } - else if (Utils.IsNonWindows()) - { - var result = await Utils.GetLinuxFontFamily("zh"); - if (result.IsNullOrEmpty()) - { - return lstFonts; - } - - var lst = result.Split(Environment.NewLine) - .Where(t => t.IsNotEmpty()) - .ToList() - .Select(t => t.Split(",").FirstOrDefault() ?? "") - .OrderBy(t => t) - .ToList(); - return lst; - } + var lst = Avalonia.Media.FontManager.Current.SystemFonts + .Select(t => t.Name) + .Where(t => t.IsNotEmpty()) + .Distinct(StringComparer.OrdinalIgnoreCase) + .OrderBy(t => t) + .ToList(); + return lst; } catch (Exception ex) {