public Screen(Window window) { IntPtr windowHandle = new WindowInteropHelper(window).EnsureHandle(); IntPtr monitor = NativeMethods.MonitorFromWindow(windowHandle, NativeMethods.MONITOR_DEFAULTTONEAREST); NativeMethods.NativeMonitorInfo monitorInfo = new NativeMethods.NativeMonitorInfo(); NativeMethods.GetMonitorInfo(monitor, monitorInfo); Bounds = Rectangle.FromLTRB(monitorInfo.Monitor.Left, monitorInfo.Monitor.Top, monitorInfo.Monitor.Right, monitorInfo.Monitor.Bottom); }
public Screen(Window window) { IntPtr windowHandle = window != null ? new WindowInteropHelper(window).Handle : IntPtr.Zero; IntPtr monitor = window != null?NativeMethods.MonitorFromWindow(windowHandle, NativeMethods.MONITOR_DEFAULTTONEAREST) : NativeMethods.MonitorFromPoint(new NativeMethods.POINT(0, 0), NativeMethods.MonitorOptions.MONITOR_DEFAULTTOPRIMARY); NativeMethods.NativeMonitorInfo monitorInfo = new NativeMethods.NativeMonitorInfo(); NativeMethods.GetMonitorInfo(monitor, monitorInfo); Bounds = Rectangle.FromLTRB(monitorInfo.Monitor.Left, monitorInfo.Monitor.Top, monitorInfo.Monitor.Right, monitorInfo.Monitor.Bottom); }