Esempio n. 1
0
        private static Rect GetMonitorArea(Window imp, bool monitorArea)
        {
            var handle  = (new WindowInteropHelper(imp)).Handle;
            var monitor = MonitorFromWindow(handle, MONITOR_DEFAULTTONEAREST);

            if (monitor != IntPtr.Zero)
            {
                var monitorData = new MONITORINFO();
                if (DllImporter.GetMonitorInfo(monitor, monitorData))
                {
                    Marshal.Release(handle);
                    handle = IntPtr.Zero;
                }

                var rect = monitorArea ? monitorData.rcMonitor : monitorData.rcWork;
                var area = new Rect(rect.left, rect.top,
                                    rect.right - rect.left,
                                    rect.bottom - rect.top);

                return(area);
            }

            return(new Rect());
        }