コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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();
            };
        }
コード例 #3
0
        /// <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);
        }