64 lines
1.7 KiB
C#
64 lines
1.7 KiB
C#
![]() |
using Wpf.Ui.Appearance;
|
|||
|
using Wpf.Ui.Controls;
|
|||
|
|
|||
|
namespace Seyounth.Hyosung.UI.ViewModels.Pages
|
|||
|
{
|
|||
|
public partial class SettingsViewModel : ObservableObject, INavigationAware
|
|||
|
{
|
|||
|
private bool _isInitialized = false;
|
|||
|
|
|||
|
[ObservableProperty]
|
|||
|
private string _appVersion = String.Empty;
|
|||
|
|
|||
|
[ObservableProperty]
|
|||
|
private ApplicationTheme _currentTheme = ApplicationTheme.Unknown;
|
|||
|
|
|||
|
public void OnNavigatedTo()
|
|||
|
{
|
|||
|
if (!_isInitialized)
|
|||
|
InitializeViewModel();
|
|||
|
}
|
|||
|
|
|||
|
public void OnNavigatedFrom() { }
|
|||
|
|
|||
|
private void InitializeViewModel()
|
|||
|
{
|
|||
|
CurrentTheme = ApplicationThemeManager.GetAppTheme();
|
|||
|
AppVersion = $"UiDesktopApp1 - {GetAssemblyVersion()}";
|
|||
|
|
|||
|
_isInitialized = true;
|
|||
|
}
|
|||
|
|
|||
|
private string GetAssemblyVersion()
|
|||
|
{
|
|||
|
return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version?.ToString()
|
|||
|
?? String.Empty;
|
|||
|
}
|
|||
|
|
|||
|
[RelayCommand]
|
|||
|
private void OnChangeTheme(string parameter)
|
|||
|
{
|
|||
|
switch (parameter)
|
|||
|
{
|
|||
|
case "theme_light":
|
|||
|
if (CurrentTheme == ApplicationTheme.Light)
|
|||
|
break;
|
|||
|
|
|||
|
ApplicationThemeManager.Apply(ApplicationTheme.Light);
|
|||
|
CurrentTheme = ApplicationTheme.Light;
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
if (CurrentTheme == ApplicationTheme.Dark)
|
|||
|
break;
|
|||
|
|
|||
|
ApplicationThemeManager.Apply(ApplicationTheme.Dark);
|
|||
|
CurrentTheme = ApplicationTheme.Dark;
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|