WPF程序 设置在双屏情况下指定屏幕显示的方法

第一步,设置程序的主窗体这个属性为: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;
        }

    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章