private void UpdatePlayerWindowState(InternalPlayerWindow playerWindow) { var state = GetWindowsFormState(_mainWindow.WindowState); _mainWindow.ShowInTaskbar = state == FormWindowState.Minimized; InvokeOnWindow(playerWindow, () => { if (state == FormWindowState.Minimized) { playerWindow.Hide(); } else { playerWindow.Show(); playerWindow.WindowState = state; } }); }
private void ShowHiddenWindow(int? width, int? height, int? top, int? left, FormStartPosition? startPosition, FormWindowState windowState) { var playerWindow = new InternalPlayerWindow(); playerWindow.Load += HiddenWindow_Load; playerWindow.Activated += HiddenWindow_Activated; if (width.HasValue) { playerWindow.Width = width.Value; } if (height.HasValue) { playerWindow.Height = height.Value; } if (top.HasValue) { playerWindow.Top = top.Value; } if (left.HasValue) { playerWindow.Left = left.Value; } playerWindow.WindowState = windowState; if (startPosition.HasValue) { playerWindow.StartPosition = startPosition.Value; } _mainWindow.LocationChanged += (s, e) => MovePlayerWindow(playerWindow); _mainWindow.StateChanged += (s, e) => UpdatePlayerWindowState(playerWindow); _mainWindow.SizeChanged += (s, e) => UpdatePlayerWindowSize(playerWindow); _mainWindow.Closing += (s, e) => ClosePlayerWindow(playerWindow); _internalPlayerWindowManager.Window = playerWindow; playerWindow.Show(); System.Windows.Threading.Dispatcher.Run(); }