Полноэкранное приложение WPF - несколько мониторов - PullRequest
9 голосов
/ 23 июня 2011

У меня есть несколько мониторов, которые используются с моим приложением WPF. Приложение работает в полноэкранном режиме, и я хочу иметь возможность переключать монитор, когда он нажимает кнопку.

case Key.M:
                    var allScreens = System.Windows.Forms.Screen.AllScreens.ToList();
                    if (this.CurrentScreen < allScreens.Count - 1)
                    {
                        this.CurrentScreen++;
                    }
                    else { this.CurrentScreen = 0; }

                    this.WindowStartupLocation = System.Windows.WindowStartupLocation.Manual;
                    this.Top = allScreens[this.CurrentScreen].Bounds.Top;
                    this.Left = allScreens[this.CurrentScreen].Bounds.Left;
                    break;

Я пытаюсь сделать это так, но this.Left всегда имеет значение (-7). Я предполагаю, что это не позволяет мне установить его, потому что я на весь экран, но я не уверен на 100%. Как я могу заставить его переключаться на другой монитор в полноэкранном режиме?

1 Ответ

4 голосов
/ 23 июня 2011

Как взломщик, вы можете изменить состояние окна, отправить его на другой монитор и изменить состояние окна обратно на максимальное:

this.WindowState = System.Windows.WindowState.Normal;
this.Left = screen.WorkingArea.Left;
this.Top = screen.WorkingArea.Top;
this.WindowState = System.Windows.WindowState.Maximized;

Это работает без каких-либо нежелательных эффектов.Только что проверил.

...