Пример #1
0
 private void ClosePlayerWindow(InternalPlayerWindow playerWindow)
 {
     InvokeOnWindow(playerWindow, playerWindow.Close);
 }
Пример #2
0
        private void UpdatePlayerWindowSize(InternalPlayerWindow playerWindow)
        {
            var width = _mainWindow.Width;
            var height = _mainWindow.Height;

            if (double.IsNaN(width) || double.IsNaN(height))
            {
                return;
            }

            InvokeOnWindow(playerWindow, () => {
                playerWindow.Width = Convert.ToInt32(width);
                playerWindow.Height = Convert.ToInt32(height);
            });
        }
Пример #3
0
        private void MovePlayerWindow(InternalPlayerWindow playerWindow)
        {
            var top = _mainWindow.Top;
            var left = _mainWindow.Left;

            if (double.IsNaN(top) || double.IsNaN(left)) {
                return;
            }

            InvokeOnWindow(playerWindow, () => {
                playerWindow.Top = Convert.ToInt32(top);
                playerWindow.Left = Convert.ToInt32(left);
            });
        }
Пример #4
0
        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;
                }
            });
        }
Пример #5
0
        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();
        }