WPF全屏应用程序-多台监视器

问题描述

| 我的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%。我如何才能全屏切换到另一台显示器?     

解决方法

        作为一种技巧,您可以更改窗口状态,将其发送到其他监视器,然后将窗口状态更改回最大化:
this.WindowState = System.Windows.WindowState.Normal;
this.Left = screen.WorkingArea.Left;
this.Top = screen.WorkingArea.Top;
this.WindowState = System.Windows.WindowState.Maximized;
它的工作没有任何不良影响。刚刚测试过。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...