72 lines
2.1 KiB
C#
72 lines
2.1 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.
|
|
|
|
namespace Wpf.Ui.Demo.Mvvm.ViewModels;
|
|
|
|
public partial class SettingsViewModel : ViewModel
|
|
{
|
|
private bool _isInitialized = false;
|
|
|
|
[ObservableProperty]
|
|
private string _appVersion = string.Empty;
|
|
|
|
[ObservableProperty]
|
|
private Wpf.Ui.Appearance.ApplicationTheme _currentApplicationTheme = Wpf.Ui
|
|
.Appearance
|
|
.ApplicationTheme
|
|
.Unknown;
|
|
|
|
public override void OnNavigatedTo()
|
|
{
|
|
if (!_isInitialized)
|
|
{
|
|
InitializeViewModel();
|
|
}
|
|
}
|
|
|
|
private void InitializeViewModel()
|
|
{
|
|
CurrentApplicationTheme = Wpf.Ui.Appearance.ApplicationThemeManager.GetAppTheme();
|
|
AppVersion = $"Wpf.Ui.Demo.Mvvm - {GetAssemblyVersion()}";
|
|
|
|
_isInitialized = true;
|
|
}
|
|
|
|
private static string GetAssemblyVersion()
|
|
{
|
|
return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version?.ToString()
|
|
?? string.Empty;
|
|
}
|
|
|
|
[RelayCommand]
|
|
private void OnChangeTheme(string parameter)
|
|
{
|
|
switch (parameter)
|
|
{
|
|
case "theme_light":
|
|
if (CurrentApplicationTheme == Wpf.Ui.Appearance.ApplicationTheme.Light)
|
|
{
|
|
break;
|
|
}
|
|
|
|
Wpf.Ui.Appearance.ApplicationThemeManager.Apply(Wpf.Ui.Appearance.ApplicationTheme.Light);
|
|
CurrentApplicationTheme = Wpf.Ui.Appearance.ApplicationTheme.Light;
|
|
|
|
break;
|
|
|
|
default:
|
|
if (CurrentApplicationTheme == Wpf.Ui.Appearance.ApplicationTheme.Dark)
|
|
{
|
|
break;
|
|
}
|
|
|
|
Wpf.Ui.Appearance.ApplicationThemeManager.Apply(Wpf.Ui.Appearance.ApplicationTheme.Dark);
|
|
CurrentApplicationTheme = Wpf.Ui.Appearance.ApplicationTheme.Dark;
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|