69 lines
1.8 KiB
C#
69 lines
1.8 KiB
C#
// This Source Code Form is subject to the terms of the MIT License.
|
|
// If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
|
|
// Copyright (C) Leszek Pomianowski and WPF UI Contributors.
|
|
// All Rights Reserved.
|
|
|
|
using Wpf.Ui.Appearance;
|
|
using Wpf.Ui.Controls;
|
|
|
|
namespace DownloadManager.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;
|
|
}
|
|
}
|
|
}
|