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
-
-
-