Пример #1
0
 public TrayIconViewModel(ISessionManager sessionManager, IPopupViewModel popupViewModel)
 {
     _sessionManager = sessionManager;
     PopupViewModel  = popupViewModel;
     LoginCommand    = new DelegateCommand(obj => Login(), () => !_sessionManager.HasValidSession);
     ExitCommand     = new DelegateCommand(obj => Close(), () => true);
 }
Пример #2
0
        private void ClosePopup(IPopupViewModel viewModel)
        {
            PopupWindow popup = _Popups.FirstOrDefault(p => ((FrameworkElement)p.Content).DataContext == viewModel);

            if (popup != null)
            {
                _Popups.Remove(popup);

                if (viewModel.IsModal && _Popups.Count == 0)
                {
                    EnableMainContentWindow();
                }

                if (_Popups.Count > 0)
                {
                    _Popups.Last().IsEnabled = true;
                }

                popup.ForceClose();

                // WORKAROUND: This is here because sometimes when closing a popup,
                // WPF will minimize the MainWindow even after removing it as owner.
                // If there's a better way to avoid this, I'm all ears.
                _MainWindow.Activate();
            }
        }
Пример #3
0
        public override void ChangePresentation(MvxPresentationHint hint)
        {
            var closeHint = hint as MvxClosePresentationHint;

            IPopupViewModel popupViewModel = closeHint?.ViewModelToClose as IPopupViewModel;

            if (popupViewModel != null)
            {
                ClosePopup(popupViewModel);
                return;
            }

            base.ChangePresentation(hint);
        }
Пример #4
0
        private PopupWindow(IPopupViewModel viewModel, Size size)
        {
            InitializeComponent();
            _viewModel = viewModel;

            _viewModel.RequestClose += ViewModel_RequestClose;
            DataContext              = _viewModel;
            Owner = Application.Current.MainWindow;

            if (size != default(Size))
            {
                SizeToContent = SizeToContent.Manual;
                Width         = size.Width;
                Height        = size.Height;
                ResizeMode    = ResizeMode.CanResize;
            }
            else
            {
                SizeToContent = SizeToContent.WidthAndHeight;
                ResizeMode    = ResizeMode.NoResize;
            }
        }
Пример #5
0
        private void PresentPopup(FrameworkElement frameworkElemenet, IPopupViewModel popupViewModel)
        {
            var popup = new PopupWindow
            {
                Owner       = _MainWindow,
                Content     = frameworkElemenet,
                DataContext = frameworkElemenet.DataContext,
                Topmost     = popupViewModel.TopMost
            };

            if (popupViewModel.IsModal)
            {
                DisableMainContentWindow();
            }

            _Popups.Add(popup);

            foreach (var subPopups in _Popups.Where(p => !p.Equals(popup)))
            {
                subPopups.IsEnabled = false;
            }

            popup.Show();
        }