/// <summary> /// Initializes a new instance of the MainViewModel class. /// </summary> public MainViewModel(Window window) { _myWindow = window; _myWindow.StateChanged += (sender, e) => { RaisePropertyChanged(() => ResizeBorderThikness); RaisePropertyChanged(() => OuterMarginSize); RaisePropertyChanged(() => OuterMarginSizeThickness); RaisePropertyChanged(() => WindowRadius); RaisePropertyChanged(() => WindowCornerRadius); }; var resizer = new WindowResizer.WindowResizer(_myWindow); }
/// <summary> /// Initializes a new instance of the MainViewModel class. /// </summary> public MainViewModel(Window window) { _myWindow = window; _myWindow.StateChanged += (sender, e) => { WindowResized(); }; var resizer = new WindowResizer.WindowResizer(_myWindow); resizer.WindowDockChanged += (dock) => { // Store last position _mDockPosition = dock; // Fire off resize events WindowResized(); }; }
/// <summary> /// Constructor that accepts a <see cref="Window"/>. /// </summary> /// <param name="window"></param> public WindowViewModel(Window window) { // Initialize window _window = window; // Initialize NotifyIcon InitializeNotifyIcon(); // Listen for location changed _window.LocationChanged += (sender, e) => { if (Pinned) { _window.Topmost = false; _pinned = false; NotifyPropertyChanged(nameof(Pinned)); } }; // Get window settings _minimizeToTray = bool.Parse(SettingsManager.LoadSetting(SettingsManager.Setting.MinimizeToTray.ToString()).ToString()); _minimizeToTrayMessage = bool.Parse(SettingsManager.LoadSetting(SettingsManager.Setting.MinimizeToTrayMessage.ToString()).ToString()); // Listen for window state changed _window.StateChanged += (sender, e) => { NotifyPropertyChanged(nameof(ResizeBorderThickness)); NotifyPropertyChanged(nameof(OuterMarginSize)); NotifyPropertyChanged(nameof(OuterMarginSizeThickness)); // Minimize to tray if setting is active if (_minimizeToTray) { // If window is minimized, enable NotifyIcon if (_window.WindowState == WindowState.Minimized) { // Hide window and enable NotifyIcon _window.Hide(); _notifyIcon.Visible = true; // Show message if setting is active if (_minimizeToTrayMessage) { _notifyIcon.ShowBalloonTip(2000, "Window minimized", "You can change these settings under General Settings.", ToolTipIcon.None); _minimizeToTrayMessage = false; } } // If window is normal, disable NotifyIcon else if (_window.WindowState == WindowState.Normal) { _notifyIcon.Visible = false; } } }; // Initialize commands MinimizeCommand = new RelayCommand.RelayCommand(p => { _window.WindowState = WindowState.Minimized; }); MaximizeCommand = new RelayCommand.RelayCommand(p => { _window.WindowState ^= WindowState.Maximized; }); CloseCommand = new RelayCommand.RelayCommand(p => { _window.Close(); }); // Resize windows when maximized var resizer = new WindowResizer.WindowResizer(_window); }