예제 #1
0
        public FullWindow(MainViewModel viewModel)
        {
            Instance = this;

            _viewModel               = new FullWindowViewModel(viewModel);
            _viewModel.AppExpanded  += (_, e) => AppPopup.PositionAndShow(this, e);
            _viewModel.AppCollapsed += (_, __) => AppPopup.HideWithAnimation();

            InitializeComponent();

            AppPopup.Closed += (_, __) => _viewModel.CollapseApp();
            LocationChanged += (_, __) => _viewModel.CollapseApp();
            SizeChanged     += (_, __) => _viewModel.CollapseApp();
            DataContext      = _viewModel;

            PreviewKeyDown += FullWindow_PreviewKeyDown;

            this.FlowDirection = SystemSettings.IsRTL ? FlowDirection.RightToLeft : FlowDirection.LeftToRight;

            Instance = this;
            Closing += (s, e) =>
            {
                Instance = null;
                _viewModel.Close();
            };

            SourceInitialized += (_, __) =>
            {
                this.Cloak();
                AccentPolicyLibrary.SetWindowBlur(this, true, true);
            };

            Microsoft.Win32.SystemEvents.DisplaySettingsChanged += (s, e) => Dispatcher.BeginInvoke((Action)(() => _viewModel.CollapseApp()));
        }
예제 #2
0
 private void FullWindow_PreviewKeyDown(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Escape)
     {
         if (_viewModel.IsShowingModalDialog)
         {
             _viewModel.CollapseApp();
         }
         else
         {
             CloseButton_Click(null, null);
         }
     }
     else
     {
         KeyboardNavigator.OnKeyDown(this, ref e);
     }
 }
예제 #3
0
        private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
        {
            Trace.WriteLine("FullWindow SystemEvents_DisplaySettingsChanged");

            Dispatcher.BeginInvoke((Action)(() => _viewModel.CollapseApp()));
        }