多屏显示主要有以下情行:通常abcd比较常见,对应的坐标如图。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9E1Ra5WNXpVb1cVWxg2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxAjM3UDNyUTMxIDOwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
WPF里,可以使用System.Windows.Forms.Screen类对多屏问题进行处理。
如:
1.指定一个控件,取得这个控件大部分区域让所在屏幕的详细信息
public static Screen FromControl(Control control);
2.指定一个对象,取得这个指针的对象大部分区域在屏幕的详细信息
public static Screen FromHandle(IntPtr hwnd);
3.指定一个点,取得这个点所在屏幕的详细信息
public static Screen FromPoint(Drawing.Point point);
4.指定一个四角形,取得这个四角形大部分区域所在屏幕的详细信息
public static Screen FromRectangle(Rectangle rect);
5.取得屏幕的信息对象后,有以下常用的信息:
Screen::PrimaryScreen //静态对象,可以直接取主屏的信息对象
Screen::AllScreens //静态对象,可以取得所有屏幕的信息对象
Screen::Bounds//可以取得指定屏幕的全屏坐标(如1600*900的屏幕:0,0,1600,900)
Screen::WorkingArea//可以取得指定屏幕的工作区坐标(如1600*900的屏幕:0,0,1600,860)
6.Rectangle类的Intersect函数和IntersectsWith函数也比较好用。
如:
ButtonARectangle.IntersectsWith(nowScreen.Bounds);//可以判断ButtonA是否在某屏幕内