在具有扩展视图的三显示器设置中定位到中央屏幕

时间:2017-08-18 03:12:24

标签: c# wpf multiple-monitors

我有三个不同尺寸/分辨率的显示器/屏幕设置为扩展视图,所有这些都连接到相同的NVIDIA显卡。从左到右:

  1. 屏幕#0 :2400 * 1080
  2. 屏幕#1 :1920x1080
  3. 屏幕#2 :1920 * 1080
  4. 我的应用程序有三个独立的Windows,我分别使用以下代码将每个Window定位到相应的监视器/屏幕

    window00.Left = System.Windows.Forms.Screen.AllScreens[0].WorkingArea.Left;
    window01.Left = System.Windows.Forms.Screen.AllScreens[1].WorkingArea.Left;
    window02.Left = System.Windows.Forms.Screen.AllScreens[2].WorkingArea.Left;
    
    window00.WindowState = System.Windows.WindowState.Maximized;
    window01.WindowState = System.Windows.WindowState.Maximized;
    window02.WindowState = System.Windows.WindowState.Maximized;
    

    我只能将第3个窗口(window02)位置正确地放到最右边的屏幕上(屏幕#02),但是第1个和第2个窗口(window00和window01)都堆叠并最大化到第一个屏幕(屏幕#00) ,将中间屏幕#01留空显示后台桌面环境,无论我设置WindowsState.Maximized还是Normal。

    即使我通过屏幕#00的宽度偏移window01位置以使所有三个窗口正确定位到相应的屏幕来解决问题,如果我最大化Windows.State,window01仍会跳回屏幕#00。

    为什么会发生这种情况?为什么窗口没有定位或最大化到它分配给的WorkingArea?可能是因为使用Forms属性的WPF应用程序?

0 个答案:

没有答案