diff --git a/Bloxstrap/Paths.cs b/Bloxstrap/Paths.cs index 43d4a1c06..803e3f6e0 100644 --- a/Bloxstrap/Paths.cs +++ b/Bloxstrap/Paths.cs @@ -25,7 +25,9 @@ static class Paths public static string Application { get; private set; } = ""; - public static string CustomFont => Path.Combine(Modifications, "content\\fonts\\CustomFont.ttf"); + public static string Fonts => Path.Combine(Modifications, "content\\fonts"); + public static string CustomFont => Path.Combine(Fonts, "CustomFont.ttf"); + public static bool Initialized => !String.IsNullOrEmpty(Base); diff --git a/Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml b/Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml index 2ce0a7354..d050d09db 100644 --- a/Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml +++ b/Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml @@ -99,7 +99,7 @@ Description="{x:Static resources:Strings.Menu_Mods_Misc_CustomFont_Description}"> - + diff --git a/Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs b/Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs index 3a116ff44..fcb07fbfa 100644 --- a/Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs +++ b/Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs @@ -11,6 +11,8 @@ using Bloxstrap.Models.SettingTasks; using Bloxstrap.AppData; +using System.Windows.Media; +using System.Drawing.Text; namespace Bloxstrap.UI.ViewModels.Settings { @@ -55,6 +57,8 @@ private void ManageCustomFont() OnPropertyChanged(nameof(ChooseCustomFontVisibility)); OnPropertyChanged(nameof(DeleteCustomFontVisibility)); + OnPropertyChanged(nameof(DeleteCustomFontFontFamily)); + OnPropertyChanged(nameof(DeleteCustomFontFontName)); } public ICommand OpenModsFolderCommand => new RelayCommand(OpenModsFolder); @@ -63,6 +67,41 @@ private void ManageCustomFont() public Visibility DeleteCustomFontVisibility => !String.IsNullOrEmpty(TextFontTask.NewState) ? Visibility.Visible : Visibility.Collapsed; + public System.Windows.Media.FontFamily DeleteCustomFontFontFamily + { + get + { + using (PrivateFontCollection collection = new PrivateFontCollection()) + { + Uri uri; + if (TextFontTask.NewState == String.Empty) + { + uri = new Uri("pack://application:,,,/Resources/Fonts/Rubik-VariableFont_wght.ttf"); + } else + { + uri = new Uri(TextFontTask.NewState, UriKind.Absolute); + } + + var fontFamilies = Fonts.GetFontFamilies(uri); + return fontFamilies.First(); + } + } + } + + public string DeleteCustomFontFontName + { + get + { + if (TextFontTask.NewState == String.Empty) + { + return String.Empty; + } + + var fontFamily = DeleteCustomFontFontFamily; + return String.Join(" ", fontFamily.FamilyNames.Values); + } + } + public ICommand ManageCustomFontCommand => new RelayCommand(ManageCustomFont); public ICommand OpenCompatSettingsCommand => new RelayCommand(OpenCompatSettings);