/// <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(); }
void HiddenWindow_Activated(object sender, EventArgs e) { _logger.Debug("Hidden window activated."); ApplicationWindow.Activate(); }
void HiddenWindow_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { _logger.Debug("HiddenWindow_IsVisibleChanged."); ApplicationWindow.Activate(); }
/// <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(); }