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;
        }

    }

 

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