之前就做过这个多屏显示的问题,但是这几天在现场的时候还是会出现问题。
出现的问题主要是:
一、窗口不用对应的显示在所希望的显示器上。比如希望1,2,3显示器分别显示窗口1,2,3.但实际上1,2窗口显示在1显示器上,2窗口显示在2显示上,而三显示器上并没有显示。
二、并不能按照顺序对应显示,会造成显示器序号和窗口序号不对应。
三、窗口的区域不对。有时候一个窗口会跨2个显示器显示,一个显示器中并不能完全显示整个窗口
之后再进行了一些资料的查阅和修改。
产生这些问题的原因。
1.WindowState的最大化不对,如果在窗口加载之前就把窗口最大化之后,则窗口也不能正确的显示到所希望的显示器。只能显示到主窗口
2.显示区域的范围选择不对。
对整个程序进行了一下的修改。并且进行一些显示器设置操作
首先如果需要用到Screen,这个类型就必须包含:
using System.Windows.Forms;这个语句,如果不成功请查阅相关的资料。
1.显示器设置操作:
这里用displayfusion对四个显示进行了设置,设置主显示器为第一个显示器,坐标从0,0开始,其他显示器一次紧贴紧跟在第一个显示器之后,并且把所有的显示Y坐标都定义为0;
读取显示列表后要根据X坐标的大小进行排序,使第一个显示器为主显示器。
List<System.Windows.Forms.Screen> screens = System.Windows.Forms.Screen.AllScreens.ToList();
screens.Sort((x, y) &