如果先前的实例主窗口在第二台显示器上最大化,则我们的应用程序主窗口在启动时不可见。如果我将鼠标悬停在任务栏上,则窗口预览为空白
然后我需要在任务栏图标上单击几次,首先将窗口最小化,然后在第二台显示器上显示最大化。
如果先前的实例已从监视器1关闭或主窗口未最大化,则在启动时它会按预期显示。
我试图在对类似问题进行冗长阅读后,从OnStartup方法实现此代码,但行为保持不变。
if (this.MainWindow == null)
{
return;
}
this.MainWindow.Loaded += this.MainWindowOnLoaded;
this.MainWindow.WindowStartupLocation = WindowStartupLocation.Manual;
Debug.Assert(System.Windows.Forms.SystemInformation.MonitorCount > 1);
Rectangle workingArea = System.Windows.Forms.Screen.AllScreens[1].WorkingArea;
this.MainWindowLeft = workingArea.Left;
this.MainWindowTop = workingArea.Top;
this.MainWindowWidth = workingArea.Width;
this.MainWindowHeight = workingArea.Height;
this.MainWindow.WindowState = WindowState.Maximized;
this.MainWindow.WindowStyle = WindowStyle.None;
this.MainWindow.Topmost = true;
}
private void MainWindowOnLoaded(object sender, RoutedEventArgs routedEventArgs)
{
this.MainWindowState = WindowState.Maximized;
}