diff --git a/Bloxstrap/Paths.cs b/Bloxstrap/Paths.cs index 1205d67..ee53e1e 100644 --- a/Bloxstrap/Paths.cs +++ b/Bloxstrap/Paths.cs @@ -26,7 +26,9 @@ 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 2ce0a73..310af7e 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 3a116ff..42e7ba7 100644 --- a/Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs +++ b/Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs @@ -11,6 +11,8 @@ using CommunityToolkit.Mvvm.Input; using Bloxstrap.Models.SettingTasks; using Bloxstrap.AppData; +using System.Windows.Media; +using System.Drawing.Text; namespace Bloxstrap.UI.ViewModels.Settings { @@ -55,6 +57,8 @@ namespace Bloxstrap.UI.ViewModels.Settings OnPropertyChanged(nameof(ChooseCustomFontVisibility)); OnPropertyChanged(nameof(DeleteCustomFontVisibility)); + OnPropertyChanged(nameof(CustomFontFont)); + OnPropertyChanged(nameof(CustomFontName)); } public ICommand OpenModsFolderCommand => new RelayCommand(OpenModsFolder); @@ -63,6 +67,41 @@ namespace Bloxstrap.UI.ViewModels.Settings public Visibility DeleteCustomFontVisibility => !String.IsNullOrEmpty(TextFontTask.NewState) ? Visibility.Visible : Visibility.Collapsed; + public System.Windows.Media.FontFamily CustomFontFont + { + 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 CustomFontName + { + get + { + if (TextFontTask.NewState == String.Empty) + { + return String.Empty; + } + + var fontFamily = CustomFontFont; + return fontFamily.FamilyNames.Values.First(); + } + } + public ICommand ManageCustomFontCommand => new RelayCommand(ManageCustomFont); public ICommand OpenCompatSettingsCommand => new RelayCommand(OpenCompatSettings);