Esempio n. 1
0
        /// <summary>
        /// Syncs the hidden window location.
        /// </summary>
        public void SyncHiddenWindowLocation()
        {
            HiddenWindow.Width       = ApplicationWindow.Width;
            HiddenWindow.Height      = ApplicationWindow.Height;
            HiddenWindow.Top         = ApplicationWindow.Top;
            HiddenWindow.Left        = ApplicationWindow.Left;
            HiddenWindow.WindowState = ApplicationWindow.WindowState;

            ApplicationWindow.Activate();
        }
Esempio n. 2
0
 void HiddenWindow_Activated(object sender, EventArgs e)
 {
     _logger.Debug("Hidden window activated.");
     ApplicationWindow.Activate();
 }
Esempio n. 3
0
 void HiddenWindow_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
 {
     _logger.Debug("HiddenWindow_IsVisibleChanged.");
     ApplicationWindow.Activate();
 }
Esempio n. 4
0
        /// <summary>
        /// Shows the application window.
        /// </summary>
        private void ShowApplicationWindow()
        {
            var win = new MainWindow(_logger, _appHost.PlaybackManager, _appHost.ApiClient, _appHost.ImageManager, _appHost, _appHost.PresentationManager, _appHost.UserInputManager, _appHost.TheaterConfigurationManager, _appHost.NavigationService);

            var config = _appHost.TheaterConfigurationManager.Configuration;

            // Restore window position/size
            if (config.WindowState.HasValue)
            {
                // Set window state
                win.WindowState = config.WindowState.Value;

                // Set position if not maximized
                if (config.WindowState.Value != WindowState.Maximized)
                {
                    double left = 0;
                    double top  = 0;

                    // Set left
                    if (config.WindowLeft.HasValue)
                    {
                        win.WindowStartupLocation = WindowStartupLocation.Manual;
                        win.Left = left = Math.Max(config.WindowLeft.Value, 0);
                    }

                    // Set top
                    if (config.WindowTop.HasValue)
                    {
                        win.WindowStartupLocation = WindowStartupLocation.Manual;
                        win.Top = top = Math.Max(config.WindowTop.Value, 0);
                    }

                    // Set width
                    if (config.WindowWidth.HasValue)
                    {
                        win.Width = Math.Min(config.WindowWidth.Value, SystemParameters.VirtualScreenWidth - left);
                    }

                    // Set height
                    if (config.WindowHeight.HasValue)
                    {
                        win.Height = Math.Min(config.WindowHeight.Value, SystemParameters.VirtualScreenHeight - top);
                    }
                }
            }

            win.LocationChanged += ApplicationWindow_LocationChanged;
            win.StateChanged    += ApplicationWindow_LocationChanged;
            win.SizeChanged     += ApplicationWindow_LocationChanged;
            win.Closing         += win_Closing;

            HiddenWindow.Activated        += HiddenWindow_Activated;
            HiddenWindow.IsVisibleChanged += HiddenWindow_IsVisibleChanged;

            ApplicationWindow = win;

            ApplicationWindow.Show();

            ApplicationWindow.Owner = HiddenWindow;

            SyncHiddenWindowLocation();

            ApplicationWindow.Activate();
        }