67 lines
1.9 KiB
C#
67 lines
1.9 KiB
C#
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<Window>(MinimizeWindow);
|
|
MaximizeCommand = new DelegateCommand<Window>(MaximizeWindow);
|
|
CloseCommand = new DelegateCommand<Window>(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();
|
|
}
|
|
}
|
|
}
|