我正在使用Screen.PrimaryScreen.WorkingArea
在主屏幕的右下角放置一个弹出窗口。通常情况下,这可以按照预期的方式运行,但在运行应用程序时会出现一些问题
在上述某个场景中更改了分辨率多次(?)次后,WorkingArea
的值似乎并不总是最新的,这使得很难正确定位弹出窗口
是否有办法强制Screen.PrimaryScreen.WorkingArea
刷新,或者是否有其他方法可以在Windows窗体应用程序中获取可以替代使用的屏幕解析?
答案 0 :(得分:0)
您可以尝试Pinvoke
[DllImport("user32.dll", SetLastError = false)]
static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
RECT scBounds = new RECT();
GetWindowRect(GetDesktopWindow(), ref scBounds);