Ai
7 Star 81 Fork 20

CookCSharp/CookPopularUI

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
MainWindowViewModel.cs 3.10 KB
一键复制 编辑 原始数据 按行查看 历史
写代码的厨子 提交于 2024-02-02 16:35 +08:00 . fixed theme switch
/*
*Description: MainWindowViewModel
*Author: Chance.zheng
*Creat Time: 2023/8/21 16:18:17
*.Net Version: 6.0
*CLR Version: 4.0.30319.42000
*Copyright © CookCSharp 2023 All Rights Reserved.
*/
using CookPopularToolkit;
using CookPopularUI.WPF.Themes;
using CookPopularUI.WPFDemo.Views;
using Microsoft.Xaml.Behaviors;
using PropertyChanged;
using Prism.Commands;
using Prism.Ioc;
using Prism.Regions;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace CookPopularUI.WPFDemo.ViewModels
{
public class MainWindowViewModel : ViewModelBase
{
[DoNotNotify]
public ThemeType Theme { get; set; }
[DoNotNotify]
public LanguageType Language { get; set; }
public bool IsShowSideBar { get; set; }
public ObservableCollection<string> DemoViewNames { get; set; }
public ObservableCollection<FrameworkElement> DemoViews { get; set; }
public int SelectedViewIndex { get; set; } = -1;
public DelegateCommand GoToHomePageCommand => new Lazy<DelegateCommand>(() => new DelegateCommand(OnGoToHomePageAction)).Value;
public DelegateCommand ThemeSwitchCommand => new Lazy<DelegateCommand>(() => new DelegateCommand(OnThemeSwitchAction)).Value;
public DelegateCommand LanguageSwitchCommand => new Lazy<DelegateCommand>(() => new DelegateCommand(OnLanguageSwitchAction)).Value;
public MainWindowViewModel()
{
DemoViewNames = new ObservableCollection<string>();
var viewNames = this.GetType().Assembly.GetTypes()
.Where(element => element.Name.EndsWith("DemoView"))
.Select(element => element.Name)
.OrderBy(element => element);
DemoViewNames.AddRange(viewNames);
}
private void OnSelectedViewIndexChanged()
{
CenterTitle = $"CookPopularUI.WPF({DemoViewNames[SelectedViewIndex].Replace("DemoView", "")})";
App.UnityContainer.Resolve<IRegionManager>().RequestNavigate("MainWindowContent", DemoViewNames[SelectedViewIndex]);
IsShowSideBar = false;
}
private void OnGoToHomePageAction()
{
CenterTitle = $"CookPopularUI.WPF(Home)";
App.UnityContainer.Resolve<IRegionManager>().RequestNavigate("MainWindowContent", nameof(HomeDemoView));
}
private void OnThemeSwitchAction()
{
Theme = PopularThemeExtended.GetCurrentTheme();
if (Theme == ThemeType.Dark)
Theme = ThemeType.Light;
else if (Theme == ThemeType.Light)
Theme = ThemeType.Dark;
Theme.SetTheme();
}
private void OnLanguageSwitchAction()
{
if (Language == LanguageType.Chinese)
Language = LanguageType.English;
else if (Language == LanguageType.English)
Language = LanguageType.Chinese;
Language.SetLanguage();
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/CookCSharp/CookPopularUI.git
git@gitee.com:CookCSharp/CookPopularUI.git
CookCSharp
CookPopularUI
CookPopularUI
master

搜索帮助