using BaseFrame.Views; using Common.PubEvents; using MaterialDesignThemes.Wpf; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Input; namespace BaseFrame.ViewModels { public class ShellViewModel : BindableBase { #region 属性 private bool _IsLeftDrawerOpen; public bool IsLeftDrawerOpen { get => _IsLeftDrawerOpen; set => SetProperty(ref _IsLeftDrawerOpen, value); } #endregion #region 命令 public ICommand LeftDrawerOpenCommand { get; set; } public ICommand MinimizeCommand { get; set; } public ICommand MaximizeCommand { get; set; } public ICommand CloseCommand { get; set; } #endregion private IEventAggregator _eventAggregator; public ShellViewModel(IEventAggregator eventAggregator, IContainerProvider containerProvider) { _eventAggregator= eventAggregator; LeftDrawerOpenCommand = new DelegateCommand(LeftDrawerOpen); MinimizeCommand = new DelegateCommand(MinimizeWindow); MaximizeCommand = new DelegateCommand(MaximizeWindow); CloseCommand = new DelegateCommand(CloseWindow); } private void LeftDrawerOpen() { IsLeftDrawerOpen = true; } private void MinimizeWindow(Window window) { if (window != null) window.WindowState = WindowState.Minimized; } private void MaximizeWindow(Window window) { if (window != null) { window.WindowState = window.WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized; } } private void CloseWindow(Window window) { window?.Close(); } } }