diff --git a/v2rayN/v2rayN/Converters/MaterialDesignFonts.cs b/v2rayN/v2rayN/Converters/MaterialDesignFonts.cs index b82d4c76..f836662b 100644 --- a/v2rayN/v2rayN/Converters/MaterialDesignFonts.cs +++ b/v2rayN/v2rayN/Converters/MaterialDesignFonts.cs @@ -15,8 +15,8 @@ namespace v2rayN.Converters var fontFamily = LazyConfig.Instance.GetConfig().uiItem.currentFontFamily; if (!string.IsNullOrEmpty(fontFamily)) { - var fontPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\Fonts\"); - MyFont = new FontFamily(new Uri($"file:///{fontPath}"), $"./#{fontFamily}"); + var fontPath = Utils.GetFontsPath(); + MyFont = new FontFamily(new Uri(@$"file:///{fontPath}\"), $"./#{fontFamily}"); } } catch diff --git a/v2rayN/v2rayN/Resources/Fonts/SourceHanSansCN-Regular.ttf b/v2rayN/v2rayN/Resources/Fonts/SourceHanSansCN-Regular.ttf deleted file mode 100644 index 5c6a2389..00000000 Binary files a/v2rayN/v2rayN/Resources/Fonts/SourceHanSansCN-Regular.ttf and /dev/null differ diff --git a/v2rayN/v2rayN/Resx/ResUI.Designer.cs b/v2rayN/v2rayN/Resx/ResUI.Designer.cs index 9df4c5f4..302ae041 100644 --- a/v2rayN/v2rayN/Resx/ResUI.Designer.cs +++ b/v2rayN/v2rayN/Resx/ResUI.Designer.cs @@ -2402,7 +2402,7 @@ namespace v2rayN.Resx { } /// - /// 查找类似 Copy the font TTF file to the directory Resources\Fonts, restart the settings 的本地化字符串。 + /// 查找类似 Copy the font TTF file to the directory guiFonts, restart the settings 的本地化字符串。 /// public static string TbSettingsCurrentFontFamilyTip { get { diff --git a/v2rayN/v2rayN/Resx/ResUI.resx b/v2rayN/v2rayN/Resx/ResUI.resx index b1f81bd8..0ab2dc69 100644 --- a/v2rayN/v2rayN/Resx/ResUI.resx +++ b/v2rayN/v2rayN/Resx/ResUI.resx @@ -1097,7 +1097,7 @@ FontFamily(Require restart) - Copy the font TTF file to the directory Resources\Fonts, restart the settings + Copy the font TTF file to the directory guiFonts, restart the settings http port=socks port+1 diff --git a/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx b/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx index 317264e6..f28f1246 100644 --- a/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx +++ b/v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx @@ -1097,7 +1097,7 @@ 当前字体(需重启) - 拷贝字体TTF文件到目录Resources\Fonts,重启设置 + 拷贝字体TTF文件到目录guiFonts,重启设置 http端口=socks端口+1 diff --git a/v2rayN/v2rayN/Tool/Utils.cs b/v2rayN/v2rayN/Tool/Utils.cs index d72b0126..c25d77f6 100644 --- a/v2rayN/v2rayN/Tool/Utils.cs +++ b/v2rayN/v2rayN/Tool/Utils.cs @@ -1135,6 +1135,22 @@ namespace v2rayN return Path.Combine(_tempPath, filename); } } + public static string GetFontsPath(string filename = "") + { + string _tempPath = Path.Combine(StartupPath(), "guiFonts"); + if (!Directory.Exists(_tempPath)) + { + Directory.CreateDirectory(_tempPath); + } + if (string.IsNullOrEmpty(filename)) + { + return _tempPath; + } + else + { + return Path.Combine(_tempPath, filename); + } + } #endregion diff --git a/v2rayN/v2rayN/Views/OptionSettingWindow.xaml.cs b/v2rayN/v2rayN/Views/OptionSettingWindow.xaml.cs index 34e3de72..6d604d31 100644 --- a/v2rayN/v2rayN/Views/OptionSettingWindow.xaml.cs +++ b/v2rayN/v2rayN/Views/OptionSettingWindow.xaml.cs @@ -66,23 +66,32 @@ namespace v2rayN.Views //fill fonts try { - var dir = new DirectoryInfo(Utils.GetPath(@"Resources\Fonts")); + var dir = new DirectoryInfo(Utils.GetFontsPath()); var files = dir.GetFiles("*.ttf"); var culture = _config.uiItem.currentLanguage.Equals(Global.Languages[0]) ? "zh-cn" : "en-us"; foreach (var it in files) { - var glyphTypeface = new GlyphTypeface(new Uri(Utils.GetPath(@$"Resources\Fonts\{it.Name}"))); - var fontFace = glyphTypeface.Win32FaceNames[new CultureInfo("en-us")]; - if (!fontFace.Equals("Regular") && !fontFace.Equals("Normal")) + var families = Fonts.GetFontFamilies(Utils.GetFontsPath(it.Name)); + foreach (FontFamily family in families) { - continue; + var typefaces = family.GetTypefaces(); + foreach (Typeface typeface in typefaces) + { + typeface.TryGetGlyphTypeface(out GlyphTypeface glyph); + var fontFace = glyph.Win32FaceNames[new CultureInfo("en-us")]; + if (!fontFace.Equals("Regular") && !fontFace.Equals("Normal")) + { + continue; + } + var fontFamily = glyph.Win32FamilyNames[new CultureInfo(culture)]; + if (Utils.IsNullOrEmpty(fontFamily)) + { + continue; + } + cmbcurrentFontFamily.Items.Add(fontFamily); + break; + } } - var fontFamily = glyphTypeface.Win32FamilyNames[new CultureInfo(culture)]; - if (Utils.IsNullOrEmpty(fontFamily)) - { - continue; - } - cmbcurrentFontFamily.Items.Add(fontFamily); } } catch (Exception ex) diff --git a/v2rayN/v2rayN/v2rayN.csproj b/v2rayN/v2rayN/v2rayN.csproj index 70ee53b2..1cf12a8d 100644 --- a/v2rayN/v2rayN/v2rayN.csproj +++ b/v2rayN/v2rayN/v2rayN.csproj @@ -101,13 +101,4 @@ - - - PreserveNewest - - - Always - - -