第一步,设置程序的主窗体这个属性为:Manual
第二步,编写获取屏幕数的代码
先要添加引用:System.Windows.Forms
然后,关键代码如下:
void SetShowScreen()
{
if (Screen.AllScreens.Length > 1)
{
Screen s2 = Screen.AllScreens[1];
System.Drawing.Rectangle r2 = s2.WorkingArea;
this.Left = r2.Left;
this.Top = r2.Top;
//不能在这里设置窗体状态
//this.WindowState = WindowState.Maximized;
}
else
{
Screen s1 = Screen.AllScreens[0];
System.Drawing.Rectangle r1 = s1.WorkingArea;
this.Top = r1.Top;
this.Left = r1.Left;
//不能在这里设置窗体状态
//this.WindowState = WindowState.Maximized;
}
}
注意这里设置窗体状态的时机,也就是WindowState这个值,
如果想窗体最大化化可以在窗体的Load事件中来设置
上面的完整的cs代码如下:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
SetShowScreen();
}
void SetShowScreen()
{
if (Screen.AllScreens.Length > 1)
{
Screen s2 = Screen.AllScreens[1];
System.Drawing.Rectangle r2 = s2.WorkingArea;
this.Left = r2.Left;
this.Top = r2.Top;
//不能在这里设置窗体状态
//this.WindowState = WindowState.Maximized;
}
else
{
Screen s1 = Screen.AllScreens[0];
System.Drawing.Rectangle r1 = s1.WorkingArea;
this.Top = r1.Top;
this.Left = r1.Left;
//不能在这里设置窗体状态
//this.WindowState = WindowState.Maximized;
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.WindowState = WindowState.Maximized;
}
}